2018年11月5日月曜日

Pythonで路線・駅データを取得する

駅データ.jpのAPIを使用して、路線や駅の情報を取得する事ができます。
以下のサンプルコードで、指定都道府県内の路線名、指定した路線内の駅情報・緯度経度を取得する事ができます。

〇都道府県内の路線を取得するサンプルコード
# coding: utf-8
from lxml import etree
import requests

pref = '11' # Saitama
baseuri='http://www.ekidata.jp/api/p/'
uri = baseuri + pref + '.xml'
headers = {'content-type': 'text/xml'}
response = requests.get(
  uri,
  headers=headers)
root = etree.fromstring(response.content)
for line in root.xpath('//line'):
  print("line_cd:"+line.findtext('line_cd'))
  print("line_name:"+line.findtext('line_name'))

〇路線内の駅を取得するサンプルコード
# coding: utf-8
from lxml import etree
import requests

line_cd = '21004'
baseuri='http://www.ekidata.jp/api/l/'
uri = baseuri + line_cd + '.xml'
headers = {'content-type': 'text/xml'}
response = requests.get(
  uri,
  headers=headers)
root = etree.fromstring(response.content)
for station in root.xpath('//station'):
  print("station_cd:"+station.findtext('station_cd'))
  print("station_name:"+station.findtext('station_name'))
  print("longitude:"+station.findtext('lon'))
  print("latitude:"+station.findtext('lat'))
  print("----------")

○関連情報
・駅データ.jpのAPI情報
http://www.ekidata.jp/api/

・requestsパッケージに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿