我想从here中提取一些天气预报信息。
我正在使用xml.etree.ElementTree
,并要求在python 3.6(Windows)中执行此操作。
我无法获得预期的输出,有时信息显示为“无”,有时不是正确的信息。
这是我的代码:
import requests
from bs4 import BeautifulSoup
import time
import datetime
import xml.etree.ElementTree as ET
url = "http://www.aemet.es/xml/municipios/localidad_28079.xml"
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
result = requests.get(url, headers=headers)
root = ET.fromstring(result.text)
hoy = datetime.date.today().strftime("%Y-%m-%d")
previsiones = {'00-24':'','00-12':'','00-06':'','06-12':'','12-18':'','18-24':''} # I will save here the info latter
for dia in root.iter('dia'):
fecha = dia.attrib['fecha']
if fecha == hoy:
prevs = dia.findall('viento')
for prev in prevs:
horas = prev.attrib['periodo']
print("Fecha:",fecha)
print("Periodo:",horas)
print("Direccion:",prev.find('direccion').text)
print("Velocidad",prev.find('velocidad').text)
这是输出:
Fecha: 2019-06-14
Periodo: 00-24
Direccion: None
Velocidad None
Fecha: 2019-06-14
Periodo: 00-12
Direccion: None
Velocidad None
Fecha: 2019-06-14
Periodo: 12-24
Direccion: O
Velocidad 25
Fecha: 2019-06-14
Periodo: 00-06
Direccion: SO
Velocidad 10
Fecha: 2019-06-14
Periodo: 06-12
Direccion: SO
Velocidad 25
Fecha: 2019-06-14
Periodo: 12-18
Direccion: O
Velocidad 25
Fecha: 2019-06-14
Periodo: 18-24
Direccion: O
Velocidad 15
这是预期的输出:
Fecha: 2019-06-06
Periodo: 12-24
Direccion: SO
Velocidad: 30
# And so on with each time period (Periodo)
关于我在做什么错的任何想法?
答案 0 :(得分:1)
for prediccion in root.iter('prediccion'):
print(prediccion.attrib)
由于某种原因,您正在打印每个prediccion
节点的属性,但没有属性,因此是空字典。
代替打印节点本身。
for prediccion in root.iter('prediccion'):
print(prediccion)
输出
<Element 'prediccion' at 0x000002517A629A48>