PythonでWebページの更新を自動検知するプログラムの作成
目次
    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に通知。

    © 2020 – レベルアップまとめ. All rights reserved.