Python抓取XML气象数据遇阻,求指导获取指定城市温湿压
解决方案
示例代码
import xml.etree.ElementTree as ET import requests # 手动指定目标城市 target_city = "Zagreb" # 替换为你需要查询的城市名称 # 获取并解析XML数据源 response = requests.get("https://vrijeme.hr/hrvatska_n.xml") response.encoding = "utf-8" root = ET.fromstring(response.text) # 遍历匹配目标城市并提取数据 for city_node in root.findall(".//Grad"): current_city = city_node.find("Ime").text if current_city == target_city: data_node = city_node.find("Podatci") temperature = data_node.find("Temp").text humidity = data_node.find("Vlaga").text pressure = data_node.find("Tlak").text # 按指定格式输出 print(f"城市名称:{current_city};气温:{temperature};气压:{pressure};湿度:{humidity}") break else: print(f"未找到城市「{target_city}」的气象数据")
代码说明
- 使用
xml.etree.ElementTree(Python内置XML解析库)定位节点,通过XPath表达式.//Grad遍历所有城市条目 - 匹配目标城市名称时,需与XML中
<Ime>标签的文本完全一致(注意大小写) - 从
<Podatci>子节点中直接提取所需的气温、湿度、气压字段,避免冗余内容输出 - 若无需
requests库,可替换为内置urllib模块获取数据:
from urllib.request import urlopen response = urlopen("https://vrijeme.hr/hrvatska_n.xml") root = ET.fromstring(response.read().decode("utf-8"))
内容的提问来源于stack exchange,提问作者geni0us
相关产品推荐
相关产品推荐

