LoginSignup
0
0

More than 5 years have passed since last update.

駅.Locky用の時刻表作成を自動化するぞ 1

Last updated at Posted at 2018-10-20

はじめに

  • 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!

色々あるなぁ・・・。次は時刻表サイトのデータを比較してみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0