2012-04-19 1 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

Общие рекомендации: обычно использовать модуль '' tempfile module '(http://docs.python.org/library/tempfile.html) для обработки временных файлов, поскольку он избегает конфликтов и удаляет их, когда это сделано и так далее. Кроме того, вы должны использовать '' \\ Temp \\ weather.xml "или' r "\ Temp \ weather.xml" ', потому что в противном случае он пытается обрабатывать эти обратные символы как escape-коды; вам повезло, что '\ T' и' \ w' не являются допустимыми экранами, и поэтому они работают, но если вы попытаетесь '\ t' или' \ n', это будет неожиданно разбито. Если вы используете [lxml] (http://lxml.de/), он будет обрабатывать все это для вас; вы можете просто проанализировать URL-адрес. – Dougal

+2

В последних двух проблемах с отступом существует проблема с отступом ... – jadkik94

ответ

0

Поскольку XML является структурированными данными, BeautifulSoup возвращает tree тегов. documentation имеет обширную информацию о том, как search и navigate в этом дереве.

 Смежные вопросы

  • Нет связанных вопросов^_^