###実現したいこと
Python3を使い、5分毎にサイトの更新を監視し更新されていたら更新した項目だけを表示するプログラムを考えています。(更新される項目はtableタグと分かっています)
そこで、はじめにBeautifulSoupを使って下記のようなプログラムを作り、更新される項目である<table>タグを取りました。(サイトはサンプルにしてあります)
Python
1import urllib.request 2from bs4 import BeautifulSoup 3 4target_url = 'https://www.sample/' 5html = urllib.request.urlopen(target_url).read() 6soup = BeautifulSoup(html, "lxml") 7 8n = soup.select("#main-list > table")[0] 9print(n)
###実行結果A
<tr> <td class="oddnew-L kjTime" nowrap="">18:30</td> <td class="oddnew-M kjCode" nowrap="">7000</td> <td class="oddnew-M kjName" nowrap="">バイク</td> </tr>
上のプログラムの実行により抽出できたtableタグの中身が実行結果Aです。
その後の5分後の更新により
###実行結果B
<tr> <td class="oddnew-L kjTime" nowrap="">18:35</td> <td class="oddnew-M kjCode" nowrap="">5000</td> <td class="oddnew-M kjName" nowrap="">スポーツ</td> </tr> <tr> <td class="oddnew-L kjTime" nowrap="">18:35</td> <td class="oddnew-M kjCode" nowrap="">6500</td> <td class="oddnew-M kjName" nowrap="">レーシング</td> </tr> <tr> <td class="oddnew-L kjTime" nowrap="">18:30</td> <td class="oddnew-M kjCode" nowrap="">7000</td> <td class="oddnew-M kjName" nowrap="">バイク</td> </tr>
となった場合、実行結果AとBを比較して、更新された<tr>〜</tr>項目のみを表示したいと考えています。具体的にはバイクを除いて更新された項目です。
###5分後に表示したい結果
<tr> <td class="oddnew-L kjTime" nowrap="">18:35</td> <td class="oddnew-M kjCode" nowrap="">5000</td> <td class="oddnew-M kjName" nowrap="">スポーツ</td> </tr> <tr> <td class="oddnew-L kjTime" nowrap="">18:35</td> <td class="oddnew-M kjCode" nowrap="">6500</td> <td class="oddnew-M kjName" nowrap="">レーシング</td> </tr>
文字列やタグについて色々調べましたが解決することができませんでした。
この場合どのような処理をした方が効率が良いのか教えていただきたいです。
###補足情報
Python3.5.2 , mac
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/08 15:04
退会済みユーザー
2017/05/08 15:16