はじめに
- Pythonをそこそこ使えるようになりたい
- ただただ勉強するのも面白くないので、課題探し
- ちょうどその頃に近隣(京阪電車)のダイヤ改正
- 駅.Lockyの時刻表が古くなり、手作業で時刻表データ作成
- 時刻表サイト ⇒ Pythonアプリ ⇒ 時刻表データ が出来たら一石二鳥!
調べてみた
- 駅.Lockyの時刻表データは、NextTrain形式の時刻表記述フォーマット
-
えきから時刻表→NextTrainデータ(tbl形式)変換サイトでTBLファイルを作ってみた
ファイルがどういうものか理解できた(ファイル名の形式等も)
A:中之島行
B:淀屋橋行
a:区間急行()
b:準急()
c:急行()
d:特急()
e:ライナー
f:通勤準急()
g:通勤快急()
h:快速急行()
i:快速特急()洛楽
[MON][TUE][WED][THU][FRI]
京橋駅 京阪京阪本線 淀屋橋方面(下り) 平日
5:Aa22 B22 Bb30 Bb39 A40 B45 Bb54 A56
6:B01 Bb09 A10 Ba18 A20 Bb24 Bc31 A32 Bb38 A40 Bb42 Ba45 A47 Bc49 Bb56 Bd58
・・・
- 時刻表データをスクレイピングするのに、PythonだとBeautifulSoupかpandas
- pandasの方がTABLEデータの取得が容易に思えたのでライブラリは決定
開発環境(またどこかで備忘録書いておかねば)
- Python3.6(Anaconda)
- Visual Studio Code
- pandas
一先ず触ってみる
- pandasにURL渡してデータ根こそぎ抜き取る
どんなデータが取れるのか理解(時刻表サイトと見比べ)
sample.py
import pandas as pd
dfs = pd.read_html("http://ekikara.jp/newdata/ekijikoku/2706011/up1_27118011.htm")
for dfsData in dfs:
print(dfsData.values)
[['時 京橋\xa0[京阪]京阪本線\xa0三条方面(上り)\xa0平日 5 三10 三22 三40 出48 [急]出55 出59 6 出08 [急]出15 出18 [急]出27 出29 [区急]萱31 [準急]出37 萱38 出43 [特]出46 [準急]樟51 樟52 [特]出57 7 [準急]出00 枚02 [特]出07 ・・・
なるほど、それらしいデータは簡単に取れた
- えきから時刻表だと色んなゴミ?まで拾うため、他のサイトも色々見てみた
時刻表サイト比べ
- えきから時刻表
- Navitime
- いつもNAVI
- ekitan
- 駅すぱあと
- Yahoo!
色々あるなぁ・・・。次は時刻表サイトのデータを比較してみます。