2014-09-03 4 views
2

나는 내 손에 흥미로운 문제가 있으며,이 사람이 훨씬 똑똑하고 훨씬 더 경험이 많은 사람이 어떤 통찰력을 줄 수 있는지 궁금해하고 있습니다.지하철 데이터를 스크래핑 했습니까?

기본적으로 몇 개의 MTA 지하철 노선 열차의 전체 정류장이 필요합니다. 여기에 데이터가 예를

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

같이 # 3 라인의 mta.info 웹 사이트에 표시되는 방법은 내가이 데이터를 긁어, 어쩌면 텍스트 또는 CSV 파일에 기록 할 수 있습니다 어쨌든 있나요 ? 그렇다면 어떻게 그런 식으로 갈 것인가? 필자는 파이썬에서이 작업을 수행 할 수있을 것 같지만 2 일 전만해도 파이썬으로 작업을 시작한 것은 확실하지 않습니다 (저는 자바 놈입니다).

나는 이들 각각을 문서에 수동으로 작성하는 것을 피하려고 노력하고 있지만 다른 선택 사항이 없다면 그렇게해야 할 것입니다. 난 그냥 크게 :) 감사가 http://web.mta.info/developers/에서 사용할 수있는 개발자 API를 가지고있는 것처럼

답변

2

@rjbman이 지적한대로 free API을 사용할 수 있습니다.

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 

인쇄 목록의 목록으로 정지의 모든 : 여기 HTML 구문 분석 BeautifulSoup를 사용하여 관련된 대체 솔루션입니다,

을하지만 : 참조 :

[ 
    [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 모듈을 사용했습니다.

+0

야, 너 생명의 은인이야! 고맙습니다. 언어 파이썬이 얼마나 강력한 지 놀라운 것입니다. 믿을 수 없어요. 자바보다 덜 길다. 귀하의 코드를 활용하여 URL 목록을 전달하고 목록의 출력을 CSV 또는 텍스트 파일로 작성할 수 있습니다. 건배 남자! –

+0

@JadeByfield 나는 여전히 API로 시도 할 것이고, 내가 링크 한'MTA-API' 파이썬 래퍼를 시도해 볼 것입니다. 여기에서 최후의 수단으로 html 파싱 접근 방식을 유지하십시오. 고맙습니다. – alecxe

1

그것은 보이는 것 데이터

거기 가능성이 올바른 방향으로 날 지점 수있는 것보다 스크립팅 전문가가 있다면가 필요합니다.

HTML 코드를 구문 분석 할 수있는 몇 가지 Python 라이브러리가 있습니다. 나는 BeautifulSoup 자신에게 특혜입니다. 필요한 정보를 웹 페이지에서 가져와 file out을 사용하여 출력 할 수 있습니다.

1

짧은 버전 :

https://raw.githubusercontent.com/loisaidasam/sub/5369ebc22ef57b932d57066a357fd4cd5a41a402/stops_per_subway_line.txt

긴 버전 :

내가 여기

는 모든 라인과 각 라인에 속하는 정지의 모든 목록입니다 MTA의 개발자 리소스에서 파싱 데이터를위한 작은 파이썬 도우미 라이브러리를 작성했습니다 :

읽고 이러한 개발자 데이터 약관을 준수 제공,

http://web.mta.info/developers/

그리고 MTA 지하철 시스템에 대한 특히 일부 정적 콘텐츠 :

https://github.com/loisaidasam/sub

MTA는 일부 개발자 리소스 제공하고있다

http://web.mta.info/developers/developer-data-terms.html

정적 지하철 데이터를 다운로드 할 수있는 직접 링크 :

http://web.mta.info/developers/data/nyct/subway/google_transit.zip

즐기십시오!