価格モニタリングスラックボットを造る方法🤑
15651 ワード
私は、ちょうど新しいスイッチを得ました.そして、私は本当に新しいPaper Mario ゲーム.を除いて、私はタイトルの完全なポップを支払うことに熱心ではない.そう.私はそれが販売しているかどうか私に話すために価格の監視スラックボットを構築!あなたも1つを構築する方法があります
まず、インストールgazpacho , hickory , and slackclient :
テキストエディタを開きますAtom ), Pythonファイルを作成する
特定のタグと要素属性に注意してください.
この場合、ページのHTMLの関連ブロックは以下の通りです.
OAuth & Permissionsを検索してクリックします
チャットの検索:パブリック.スコープを書き込み、追加する
スクロールして、ページの上部にスクロールし、スラックのワークスペースにアプリケーションをインストールします
生成されたトークンを
コマンドラインでスクリプトを実行して動作を確認します.
あなたは何かクールで構築した場合gazpacho //hickory 連絡を取る、私はそれについて聞いてみたい!
まず、インストールgazpacho , hickory , and slackclient :
pip install gazpacho hickory slackclient
識別するpage あなたはscrapeしたい:テキストエディタを開きますAtom ), Pythonファイルを作成する
mario.py
インポートガスパパチョfrom gazpacho import get, Soup
HTMLをダウンロードしてくださいget
機能して、それをものにしますSoup
ラッパーurl = "https://www.bestbuy.ca/en-ca/product/paper-mario-the-origami-king-switch/14643866"
html = get(url)
soup = Soup(html)
それを右クリックして「検査」要素を開くことによって、その価格がどのようにページに表示されるかを把握してください.特定のタグと要素属性に注意してください.
この場合、ページのHTMLの関連ブロックは以下の通りです.
<div class="price_FHDfG large_3aP7Z " aria-hidden="true">
$79
<span class="rightEndPrice_6y_hS">99</span>
</div>
使用するfind
部分マッチング方式strict=False
) 価格を抽出し、floatとしてフォーマットできるようになりました.price = soup.find("div", {"class": "price"}, strict=False)
lhs = price.text
rhs = price.find("span", {'class': 'rightEndPrice'}).text
price = float(f"{lhs}.{rhs}".replace('$', ""))
もタイトルを取得します.title = soup.find('h1', {'class': 'productName'}).text
すべてが動作していることを確認するために両方を出力します.print(title, price)
# Paper Mario: The Origami King (Switch) 79.99
スクリプト全体は次のようになります.# mario.py
from gazpacho import get, Soup
url = "https://www.bestbuy.ca/en-ca/product/paper-mario-the-origami-king-switch/14643866"
html = get(url)
soup = Soup(html)
title = soup.find('h1', {'class': 'productName'}).text
price = soup.find("div", {"class": "price"})
lhs = price.text
rhs = price.find("span", {'class': 'rightEndPrice'}).text
price = float(f"{lhs}.{rhs}".replace('$', ""))
print(title, price)
このスクレーパーをスケジュールしてスラックボットに変えるにはhttps://api.slack.com/apps をクリックします.OAuth & Permissionsを検索してクリックします
チャットの検索:パブリック.スコープを書き込み、追加する
スクロールして、ページの上部にスクロールし、スラックのワークスペースにアプリケーションをインストールします
生成されたトークンを
mario.py
ファイルを文字列で返しますtoken = "xoxb-00000000-0000000000-00000000000"
スラックをインポートし、インスタンスをインスタンス化するWebClient
:from slack import WebClient
client = WebClient(token=token)
スラックチャネルにメッセージを送るchat_postMessage
メソッド:
client.chat_postMessage(channel="mario", text=f"{price} - {title}")
リファクションのすべてのように見えるように:# mario.py
from gazpacho import get, Soup
from slack import WebClient
token = "xoxb-00000000-00000000-000000000000000"
client = WebClient(token=token)
url = "https://www.bestbuy.ca/en-ca/product/paper-mario-the-origami-king-switch/14643866"
html = get(url)
soup = Soup(html)
title = soup.find('h1', {'class': 'productName'}).text
price = soup.find("div", {"class": "price"})
lhs = price.text
rhs = price.find("span", {'class': 'rightEndPrice'}).text
price = float(f"{lhs}.{rhs}".replace('$', ""))
client.chat_postMessage(channel="mario", text=f"${price} - {title}")
あなたは本当にあなたのトークンをプレーンテキストとして公開してはいけません.コマンドラインでスクリプトを実行して動作を確認します.
python mario.py
ヒッコリーで30秒ごとにこのスクリプトをスケジューリングするのは簡単です.ジャスト・ユースhickory schedule
コマンド行でhickory schedule mario.py --every=30s
スケジュールの実行状況を確認するには、次の手順に従います.hickory status
# ID FILE STATE RUNS INTERVAL
# ea6b74 mario.py waiting 0 30
そして、スケジュールを殺すhickory kill mario.py
この価格監視スラックボットのスケジューリングは、毎日9 : 00 amで実行します.hickory schedule mario.py --every=@9:00am
そして、それ!🤑あなたは何かクールで構築した場合gazpacho //hickory 連絡を取る、私はそれについて聞いてみたい!
Reference
この問題について(価格モニタリングスラックボットを造る方法🤑), 我々は、より多くの情報をここで見つけました https://dev.to/maxhumber/how-to-build-a-price-monitoring-slack-bot-13fdテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol