目次
Add a header to begin generating the table of contents
自動検知プログラムで可能になること
- 例えばWEB上の商品の再入荷がすぐわかる。いちいち見に行かなくても通知でわかるようになる。
使用するライブラリ Beautifulsoup
- ビューティフルスープを活用、特定のページのHTML要素を持ってこれる。html.parserを活用することで綺麗な形で取ってこれる。
from bs4 import BeautifulSoup
import requests
url = ''
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
new_elem = str(soup.select('.item-detail'))
Classで今後変化する特定の要素を指定
- SOLD OUTという文字列。商品が入荷したら消えるはず。
- String型で取ってきて比較すればいい。
過去の値と現在の値の変化をチェックする
- テキストファイルに過去の値を保存しておく、そのHTMLと比較をして=でなくなれば変化したということ。
- 更新されたら、更新された値をtxtに入れる。
- ‘w’は書き込みモードでオープン。
if new_elem == old_elem:
print('変化なし')
return False
else
with open('old_elem.txt', 'w') as f:
f.write(new_elem)
print('Webページが更新されました')
return True
tryとexcept
- try を実行、ファイルがない場合はexceptを実行。
- ファイルがなくてもエラーが起こらないようにできる。
try:
with open('old_elem.txt') as f:
old_elem = f.read()
except:
old_elem = ''
あとは定期実行すれば検知できる
- クラウド上で関数を実行、Line NotifyでLINEに通知。