这篇文章将为大家详细讲解有关Python3 XML如何获取雅虎天气,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
站在用户的角度思考问题,与客户深入沟通,找到金乡网站设计与金乡网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖金乡地区。实现Linux Python3获取雅虎天气
#!/usr/bin/env python3 # coding: utf-8 import os from datetime import datetime from urllib import request from xml.parsers.expat import ParserCreate file_name = "weather.txt" for root, dirs, files in os.walk("."): if file_name in files: os.remove(os.path.join(root, file_name)) def yahoo_weather(data): flag = False weather = {"city": "", "pubdate": "", "forecast": []} def start_element(name, attrs): if name == "yweather:location": weather["city"] = weather["city"] + attrs["city"] weather["city"] = weather["city"] + " " + attrs["country"] if name == "yweather:forecast": forecast = {} forecast["date"] = attrs["date"] forecast["day"] = attrs["day"] forecast["high"] = attrs["high"] forecast["low"] = attrs["low"] forecast["text"] = attrs["text"] weather["forecast"].append(forecast) if name == "pubDate": nonlocal flag flag = True def char_data(text): nonlocal flag if flag: weather["pubdate"] = text flag = False parser = ParserCreate() parser.StartElementHandler = start_element parser.CharacterDataHandler = char_data parser.Parse(data) return weather def print_weather(weather): with open(file_name, "a") as f: s = "City: %s\nPub date: %s" %(weather["city"], weather["pubdate"]) print("%s" %(weather["city"])) f.write(s + "\n") for forecast in weather["forecast"]: date = datetime.strptime(forecast["date"], "%d %b %Y").strftime("%Y-%m-%d") s = "Date: %s High: %s Low: %s Weather: %s" %(date, forecast["high"], forecast["low"], forecast["text"]) f.write(s + "\n") f.write("\n") citys = ["2151330", "2151849", "44418", "615702", "2514815"] for city in citys: url = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%20" url = url + city url = url + "&format=xml" with request.urlopen(url, timeout=4) as f: weather = yahoo_weather(f.read()) print_weather(weather) print("weather conditions has written to %s" %(file_name))
关于“Python3 XML如何获取雅虎天气”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。