六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

運行状況通知プログラムの欠点

さあ日曜だ運行状況通知プログラムの続き、と思ったが、一つ欠点があることが分かった。そもそもこのプログラムは電車が遅延したり止まったりしないと、対象サイトの構造が分からないからスクレイピングのためのコードが書けないし、テストもできない!最近遅延も事故も少ないから、先に進めない。
仕方がないので読売新聞のサイトのヘッドラインの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]とかすっきりしていていいですよね。