2012-04-19 90 views
0

我想学习Python。我唯一的经验就是Applescripting,而且学习起来并不是那么容易......至少到目前为止。脚本解析天气

我试图解析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

一般建议:通常最好使用['临时文件module'(http://docs.python.org/library/tempfile.html)来处理临时文件,因为它会避免冲突,当删除它完成了等等。此外,你应该使用'“\\ \\温度weather.xml”'或'R“的\ Temp \ weather.xml”',否则它试图把那些反斜杠字符转义码;你走运的是'\ T'和'\ w'无效逃逸,所以它的工作原理,但如果你试图'\ t'或'\ N'它会以令人惊讶的方式打破。如果你使用[lxml](http://lxml.de/),它会为你处理所有这些;你可以“解析”一个URL。 – Dougal 2012-04-19 18:47:21

+2

最后两个循环中存在缩进问题... – jadkik94 2012-04-19 18:49:36

回答