暗号通貨の価値を手動で追跡しますか?
暗号通貨の価値が特定の値だけ上昇または下降したときに電子メールで通知を受け取りたいですか?
コインの価値を確認するためだけに仮想通貨交換ウェブサイトにアクセスするのをやめたいですか?
「はい」と答えた場合は、正しい場所にいます。
あなたが経験豊富なトレーダーであっても、仮想通貨愛好家であっても、最新の価格を常に最新の状態に保つことが重要です。ありがたいことに、Python はこのプロセスを自動化し、時間と労力を節約できます。
この投稿では、特定の取引所での暗号通貨の価値をリアルタイムで追跡する簡単な Python スクリプトについて説明します。
暗号通貨市場は年中無休で運営されており、価格は数秒で変化する可能性があります。追跡プロセスを自動化すると、次のことが可能になります。
この手順を進めるには、次のものが揃っていることを確認してください:
次の 3 つのファイルがあります:
コード全体は、この GitHub gist にあります。
注: 読みやすさと効率を向上させるためにコードをリファクタリングすることもできますが、ここでは主に機能に焦点を当てています。
注: この例では、価格を追跡する暗号交換として「Kraken」を使用しました。
(たとえば)Polkadot コインの価値が 1 ユーロ増加すると、次のような電子メール通知が届きます:
必要なライブラリをインポートします。
load_dotenv()
安全に処理するために、電子メール認証情報 (PASSWORD) などの変数を .env ファイルからロードします。
load_dotenv()
目的: 価格しきい値に達したときに HTML 形式の電子メール通知を送信します。
外部ファイル (email_template.html) から電子メール テンプレートを読み込みます。
def send_email(subject, price, currency_name, image_url, price_change): sender_email = "your_email@gmail.com" receiver_email = "your_email@gmail.com" password = os.getenv("PASSWORD") -> here you need to type your generated google account app password msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject if price_change > 0: change_emoji = "?" elif price_change < 0: change_emoji = "?" else: change_emoji = "⚖️" with open('email_template.html', 'r', encoding='utf-8') as f: html_template = f.read() html_content = html_template.format( currency_name=currency_name, price=price, image_url=image_url, change_emoji=change_emoji ) msg.attach(MIMEText(html, 'html')) try: server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, password) server.sendmail(sender_email, receiver_email, msg.as_string()) print("E-mail sent!") except Exception as e: print(f"Error occured: {e}") finally: server.quit()
目的: ターゲット Web サイトへの過剰なリクエストを防止するために遅延を追加し、ボットとして検出されるのを回避します。
def delay(): time.sleep(2)
目的: JSON ファイルから暗号通貨の詳細 (名前、URL、imagesrc など) を読み込みます。
def load_cryptocurrencies(): with open('cryptocurrencies.json', 'r') as f: return json.load(f)
目的: 暗号通貨の価格を収集するためにヘッドレス Chrome ブラウザをセットアップします。
ヘッドレス: GUI なしで Chrome を実行します。
カスタム ユーザー エージェント: 実際のブラウザーの使用法を模倣して、ボットの検出を回避します。
chrome_options = Options() header = Headers(browser="chrome", os="win", headers=False) customUserAgent = header.generate()['User-Agent'] chrome_options.add_argument(f"user-agent={customUserAgent}") chrome_options.add_argument("--headless") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
cryptocurrencies = load_cryptocurrencies() for currency in cryptocurrencies: try: url = f"https://www.kraken.com/prices/{currency['url']}" driver.get(url) delay() price_element = driver.find_element(By.CLASS_NAME, "asset-price.black-color")
価格テキストを解析し、比較と計算のために浮動小数点数に変換します
price = price_element.text.strip().replace('€', '').replace(',', '.') try: price = float(price) except ValueError: print(f"Error while conversion price for {currency['name']}: {price}") continue
最後に保存された価格をテキスト ファイルから取得します。存在しない場合は、以前のデータがないと想定されます。
価格変化 (price_change) を計算します。
previous_price_file = f"previous_price_{currency['url']}.txt" try: with open(previous_price_file, 'r') as file: previous_price = float(file.read().strip()) except FileNotFoundError: previous_price = None price_change = price - previous_price
価格変更通知のしきい値を設定します:
注: より多くの桁でコインを追跡したい場合は、ここで調整する必要があります。
if previous_price is not None: if price < 100: if abs(price - previous_price) >= 1: subject = f"New price {currency['name']}: {price}" send_email(subject, price, currency['name'], currency['imagesrc'], price_change) else: if abs(price - previous_price) >= 5: subject = f"New price {currency['name']}: {price}" send_email(subject, price, currency['name'], currency['imagesrc'], price_change)
今後の比較のために現在の価格をテキスト ファイルに保存します。
with open(previous_price_file, 'w') as file: file.write(str(price))
except Exception as e: print(f"Error occured for {currency['name']}: {e}")
すべてのタスクが完了した後、ブラウザ インスタンスを閉じます。
これを 1 時間に 1 回実行するには、これを追加します:
driver.quit()
crontab -e
このガイドに従うことで、就寝中に仮想通貨の価格を追跡し、リアルタイムの電子メール通知を受け取ることができます!
この投稿が役に立った、またはスクリプトを改善するアイデアがある場合は、お気軽に以下にコメントを残してください?
コーディングを楽しんで、取引を成功させてください!
以上がGMAIL と Python を使用した自動仮想通貨価格追跡の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。