2014-03-03 4 views
0

URL에서 테이블을 추출하기 위해 BeautifulSoup에 사용했던 지점까지 도달 할 수있었습니다. 이 시점에서 나는 GeekTool에서 사용할 수 있도록 출력을 테이블 형식으로 지정하려고합니다. 다음 출력표 형식 터미널 텍스트 출력 표

from bs4 import BeautifulSoup 
import urllib2 
wiki = "https://www.google.com/maps/place?q=type:transit_station:%22145+St%22&ftid=0x89c2f67c67a250f9:0x92d51daa07480dd1" 
header = {'User-Agent': 'Mozilla/5.0'} #Needed to prevent 403 error on Wikipedia 
req = urllib2.Request(wiki,headers=header) 
page = urllib2.urlopen(req) 
soup = BeautifulSoup(page) 

desination = "" 
eta = "" 
table = soup.find("table", { "class" : "pprtjt" }) 


for row in table.findAll("tr"): 
    for cell in row.findAll("td"): 
     print cell.findAll(text=True) 

:

:

그래서, 라인의 열 중 하나의 첫번째 라인
[u' C to 168 St '] 
[u'2 min'] 
[u' D to Norwood - 205 St '] 
[u'4 min'] 
[u' A to Ozone Park - Lefferts Blvd '] 
[u'4 min'] 
[u' A to Inwood - 207 St '] 
[u'5 min'] 
[u' D to Coney Island - Stillwell Av '] 
[u'10 min'] 
[u' C to 168 St '] 
[u'15 min'] 
[u' D to Norwood - 205 St '] 
[u'19 min'] 
[u' A to Far Rockaway - Mott Av '] 
[u'19 min'] 
[u' A to Inwood - 207 St '] 
[u'20 min'] 

라인 두 같은, 등등에 열의 첫 번째 행이며

C to 168 St     | 2 min 
D to Norwood - 205 St  | 4 min 
A to Ozone Park - Lefferts Blvd | 4 min 
A to Inwood - 207 St  | 5 min 
D to Coney Island - Stillwell Av | 10 min 
C to 168 St     | 15 min 
D to Norwood - 205 St  | 19 min 
A to Far Rockaway - Mott Av   | 19 min 
A to Inwood - 207 St  | 20 min 

이상적으로 나는 그것을 테이블로 인쇄하고 전체를 GeekTool에서 사용하고 싶습니다. 내 코드의 기초는 여기에서 : http://adesquared.wordpress.com/2013/06/16/using-python-beautifulsoup-to-scrape-a-wikipedia-table/ 따라서 위키 피 디아에 대한 참조.

전 완전히 아마추어예요. 이것에 관해서는 완전히 잘못된 길인 경우 사과드립니다. 미리 감사드립니다.

+1

예상되는 결과는 무엇입니까? –

+0

이 주석에 어떻게 표시 할 것인지 잘 모르겠습니다. 위의 설명과 같습니다. –

답변

0

내가 마지막 더블 루프이 하나 같이해야한다고 생각 :

for row in table.findAll("tr"): 
    rowText = [] 
    for cell in row.findAll("td"): 
     # Append every cell in this row 
     rowText.append(cell.findAll(text=True)[0]) 
    # print the row joining the cells with '|' 
    print ' | '.join(rowText)