首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刮地铁数据?

刮地铁数据?
EN

Stack Overflow用户
提问于 2014-09-03 01:15:19
回答 3查看 1.5K关注 0票数 2

我手头上有一个有趣的问题,我想知道这里的人,谁是更聪明,更有经验的这类事情,可以提供一些洞察力。

基本上,我需要几个地铁线路列车的全部列车站的清单。下面是在mta.info网站上显示数据的方式,比如#3行

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

无论如何,我是否可以刮掉这些数据,并将其写入文本或csv文件?如果是这样的话,我该怎么做呢?我觉得这可能是用Python完成的,但我不确定,因为我两天前才开始用Python创建东西(我是一个Java家伙)。

我试图避免将其中的每一个都手动写入文档,但如果没有其他选择,我想我将不得不这样做。我只需要数据

如果有任何脚本专业人士可能会指出正确的方向,那将是非常感谢的:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-03 01:28:06

正如@rjbman所指出的,有一个自由API可用。另见:

但是,这里有一个使用BeautifulSoup进行HTML解析的替代解决方案

代码语言:javascript
复制
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

将所有停止打印为列表列表:

代码语言:javascript
复制
[
    [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模块。

票数 2
EN

Stack Overflow用户

发布于 2014-09-03 01:25:12

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

除此之外,还有几个不同的Python库可以让您解析HTML代码;我自己比较喜欢BeautifulSoup。您可以从网页中提取所需的信息,然后使用列队输出它。

票数 1
EN

Stack Overflow用户

发布于 2014-10-14 05:52:02

短版

下面是属于每一行的所有行和所有停止的列表:

line.txt

长版本

我编写了一个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

享受吧!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25634764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档