我手上有一个有趣的问题,我想知道这里有谁更聪明,更有经验的人可以提供一些见解。
基本上,我需要一对MTA地铁列车列车的完整列表。以下是数据在mta.info网站上的显示方式,对于#3行,作为示例
http://web.mta.info/nyct/service/threelin.htm
无论如何我可以抓取这些数据,也可以将其写入文本或csv文件?如果是这样,我会怎么做呢?我觉得这可能是用Python完成的,但我不确定,因为我刚刚开始用Python创建东西2天前(我是一个Java人员)。
我试图避免实际上手动将这些内容写入文档中,但如果没有其他选择,我想我必须这样做。我只需要数据
如果那里有任何脚本专业人员可能指向正确的方向,那将非常感激:)
答案 0 :(得分:2)
@rjbman指出有一个free API可用。另见:
但是,这是一个使用BeautifulSoup
进行HTML解析的替代解决方案:
from bs4 import BeautifulSoup
import requests
url = "http://web.mta.info/nyct/service/threelin.htm"
response = requests.get(url)
soup = BeautifulSoup(response.content)
table = soup.find('table', summary='Table of 3 Subway Line Stops')
stops = [tr('td')[2].text.strip().replace('\n', '').split(' /')
for tr in table('tr', height=25)]
print stops
将所有停靠点打印为列表列表:
[
[u'Harlem-148 Street', u'7 Avenue'],
[u'145 Street', u'Lenox Avenue'],
...
[u'Van Siclen Avenue', u'Livonia Avenue'],
[u'New Lots Avenue', u'Livonia Avenue']
]
要获取页面内容,我已使用requests
模块。
答案 1 :(得分:1)
看起来他们在http://web.mta.info/developers/处有一个开发人员API。
除此之外,还有一些不同的Python库可以解析HTML代码;我自己优先BeautifulSoup。您可以从网页上提取所需信息,然后使用file out输出。
答案 2 :(得分:1)
简短版:
这里列出了属于每一行的所有行和所有停靠点:
长版:
我编写了一个小的Python帮助程序库,用于解析来自MTA的开发人员资源的数据:
https://github.com/loisaidasam/sub
MTA提供了一些开发人员资源:
http://web.mta.info/developers/
特别是有关MTA地铁系统的一些静态内容,只要您阅读并遵守这些开发人员数据条款:
http://web.mta.info/developers/developer-data-terms.html
直接链接下载静态地铁数据:
http://web.mta.info/developers/data/nyct/subway/google_transit.zip
享受!