我手头上有一个有趣的问题,我想知道这里的人,谁是更聪明,更有经验的这类事情,可以提供一些洞察力。
基本上,我需要几个地铁线路列车的全部列车站的清单。下面是在mta.info网站上显示数据的方式,比如#3行
http://web.mta.info/nyct/service/threelin.htm
无论如何,我是否可以刮掉这些数据,并将其写入文本或csv文件?如果是这样的话,我该怎么做呢?我觉得这可能是用Python完成的,但我不确定,因为我两天前才开始用Python创建东西(我是一个Java家伙)。
我试图避免将其中的每一个都手动写入文档,但如果没有其他选择,我想我将不得不这样做。我只需要数据
如果有任何脚本专业人士可能会指出正确的方向,那将是非常感谢的:)
发布于 2014-09-03 01:28:06
正如@rjbman所指出的,有一个自由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模块。
发布于 2014-09-03 01:25:12
看起来他们在http://web.mta.info/developers/上有一个开发者API。
除此之外,还有几个不同的Python库可以让您解析HTML代码;我自己比较喜欢BeautifulSoup。您可以从网页中提取所需的信息,然后使用列队输出它。
发布于 2014-10-14 05:52:02
短版
下面是属于每一行的所有行和所有停止的列表:
长版本
我编写了一个Python助手库,用于解析MTA的Developer Resources中的数据:
https://github.com/loisaidasam/sub
MTA提供了一些开发人员资源:
http://web.mta.info/developers/
特别是一些关于MTA地铁系统的静态内容,只要您阅读并遵守这些开发人员的数据术语:
http://web.mta.info/developers/developer-data-terms.html
下载静态地铁数据的直接链接:
transit.zip
享受吧!
https://stackoverflow.com/questions/25634764
复制相似问题