收集MTA地铁数据?

2024-05-15 20:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我手上有一个很有趣的问题,我想知道这里有一个更聪明,经验更丰富的人能不能给我一些启示。在

基本上,我需要一个完整的名单火车站的MTA地铁线路列车。以下是数据在mta.info.信息网站,以#3行为例

http://web.mta.info/nyct/service/threelin.htm

有没有什么我可以刮取这些数据,或者把它写到一个文本或csv文件中?如果是这样的话,我该怎么做呢?我觉得这可能是用Python实现的,但我不确定,因为我两天前才开始用Python创建东西(我是一个Java人)。在

我试图避免把这些都手工写在文档中,但是如果没有其他选择,我想我必须这样做。我只需要数据

如果有任何一个脚本专业人士能为我指明正确的方向,我将不胜感激:)


Tags: 数据infoweb信息http网站经验线路
3条回答

看起来他们在http://web.mta.info/developers/上有一个开发人员API。在

除此之外,还有两个不同的Python库可以让您解析HTML代码;我自己更喜欢BeautifulSoup。您可以从网页上提取所需信息,然后使用file out输出。在

短版

以下是所有线路和每条线路的所有车站的列表:

{a1}

长版

我编写了一个小Python helper库,用于解析来自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

享受吧!在

正如@rjbman指出的,有一个free API可用。另请参见:

但是,这里有一个替代解决方案,涉及使用^{}进行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

将所有站点打印为列表列表:

^{pr2}$

为了获取页面内容,我使用了^{}模块。在

相关问题 更多 >