運行状況通知プログラムの欠点
さあ日曜だ運行状況通知プログラムの続き、と思ったが、一つ欠点があることが分かった。そもそもこのプログラムは電車が遅延したり止まったりしないと、対象サイトの構造が分からないからスクレイピングのためのコードが書けないし、テストもできない!最近遅延も事故も少ないから、先に進めない。
仕方がないので読売新聞のサイトのヘッドラインの1行目の文字列を持ってくるスクリプトを書いた。コアの部分を先に作成しよう。
retDict = {} import lxml.html import requests try: target_url = 'http://www.yomiuri.co.jp/' target_html = requests.get(target_url).content root = lxml.html.fromstring(target_html.decode('utf-8')) top = root.cssselect('.headline')[0].text_content() dict = {} dict['time'] = top[-6:-1] dict['contents'] = top[0:-7] retDict['読売新聞'] = dict except Exception as ex: print(ex) print(retDict)
実行例
{'読売新聞': {'contents': '川崎の簡易宿泊所で火事、2人死亡16人重軽傷', 'time': '08:27'}}
top[-6:-1]とかtop[0:-7]とかすっきりしていていいですよね。