2012-04-19 3 views
0

저는 파이썬을 배우려고합니다. 내 유일한 경험은 AppleScript로 작성하는 것이고 그렇게 배우기는 쉽지 않습니다. 어쨌든.날씨를 파싱 할 스크립트

XML 날씨 사이트를 구문 분석하려고하는데 지금까지 필요한 데이터가 있지만이를 처리하기 위해 목록에 추가하는 방법을 알 수 없습니다. 누구든지 도와 줄 수 있습니까?

from BeautifulSoup import BeautifulSoup 
import xml.etree.cElementTree as ET 
from xml.etree.cElementTree import parse 
import urllib2 

url = "http://www.weatheroffice.gc.ca/rss/city/ab-52_e.xml" 
response = urllib2.urlopen(url) 
local_file = open("\Temp\weather.xml", "w") 
local_file.write(response.read()) 
local_file.close() 

invalid_tags = ['b', 'br'] 

tree = parse("\Temp\weather.xml") 

stuff = tree.findall("channel/item/description") 

item = stuff[1] 

parsewx = BeautifulSoup(stuff[1].text) 

for tag in invalid_tags: 
for match in parsewx.findAll(tag): 
    match.replaceWithChildren() 

print parsewx 
+0

일반 제안 : 대개 임시 파일을 처리하기 위해 ['tempfile module'] (http://docs.python.org/library/tempfile.html)을 사용하는 것이 좋습니다. 왜냐하면 충돌을 피하고 삭제할 것이기 때문입니다. 그것은 끝났다. 또한''\\ Temp \\ weather.xml "'또는'r"\ Temp \ weather.xml "'을 사용해야합니다. 그렇지 않으면 역 슬래시 문자를 이스케이프 코드로 처리하려고하기 때문에; 당신은'\ T'와'\ w'가 유효한 이스케이프가 아니기 때문에 운이 좋았지 만,'\ t' 또는'\ n'을 시도하면 놀라운 결과가 나올 것입니다. [lxml] (http://lxml.de/)을 사용하면 모든 것을 처리 할 수 ​​있습니다. 당신은 URL을''해석 할 수 있습니다. – Dougal

+2

마지막 두 루프에 들여 쓰기 문제가 있습니다 ... – jadkik94

답변

0

XML은 구조화 된 데이터이므로 BeautifulSoup는 태그의 tree을 반환합니다. documentation에는 해당 트리에서 searchnavigate의 방법에 대한 광범위한 정보가 있습니다.

관련 문제