介绍
小编给大家分享一下基于Python如何获取城市近7天天气预报,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
Python主要用来做什么
Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。
这篇文章主要介绍了基于Python获取城市近7天天气预报,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
首先,我们打开中国天气网,找到黄石市近7天天气的网页。
然后按F12开始分析网页结构,找到各个标签,并分析它们的作用.h2:日期;p:天气;tem-span:最高温;tem-i:最低温;赢:风;em:风向;win-i:风力。
接下来,我们需要找到它的用户代理,即用户代理。
分析的差不多了,我们就开始写代码,下面是我写的全部代码及运行结果:
import 再保险 import 请求 得到bs4 import  BeautifulSoup def get_page (url): #获取url 尝试才能: ,,,headers =,{& # 39;用户代理# 39;:& # 39;Mozilla/5.0, (Windows NT 6.1;, Win64;, x64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/75.0.3770.90 Safari/537.36 & # 39;} ,,,r =, requests.get (url、标头) ,,,r.raise_for_status () ,,,r.encoding =r.apparent_encoding ,,,return r.text 除了才能: ,,,return & # 39;出现异常& # 39;,#异常处理,防止出现错误 def parse_page (html、, weather_list): soup 才能=,BeautifulSoup (html、, & # 39; html.parser& # 39;) day_list 才能=,soup.find (& # 39; ul # 39;,, & # 39; t clearfix& # 39;) .find_all(& # 39;李# 39;) for 才能;day  day_list:拷贝 ,,,date =, day.find (& # 39; h2 # 39;) .get_text () ,,,wea =, day.find (& # 39; p # 39;,, & # 39;我们# 39;).get_text () ,,,if day.find (& # 39; p # 39;,, & # 39; tem # 39;);(& # 39;跨度# 39;):,#判断标签& # 39;p # 39;, & # 39; tem # 39;下是否有标签& # 39;跨度# 39;,以此判断是否有最高温 ,,,,,,,tem_h =, day.find (& # 39; p # 39;,, & # 39; tem # 39;);(& # 39;跨度# 39;).get_text () ,,,: ,,,,,,,tem_h =, & # 39; & # 39;, #最高温 ,,,tem_l =, day.find (& # 39; p # 39;,, & # 39; tem # 39;);(& # 39;我# 39;).get_text(), #最低温 ,,,win1 =, re.findall (& # 39; (& lt;=, title=?。* ? (?=? & # 39;,, str (day.find (& # 39; p # 39; & # 39;赢得# 39;);(& # 39;em # 39;))) ,,,win2 =, & # 39; & # 39; . join (win1), #风向,win1-win2 ,,,level =, day.find (& # 39; p # 39;,, & # 39;赢得# 39;);(& # 39;我# 39;).get_text(), #风力 ,,,weather_list.append([日期,,我们,,,tem_l, tem_h,, win2,,水平)) def print_wea (weather_list): 时间=s 才能;& # 39;,\ t # 39; *, 3 打印才能(s.join((& # 39;日期& # 39;,,& # 39;天气& # 39;,,& # 39;最低温& # 39;,,& # 39;最高温& # 39;,,& # 39;风向& # 39;,,& # 39;风力& # 39;))) for 才能小姐:拷贝weather_list: ,,,print(我[0],& # 39;\ t # 39;,我[1],& # 39;\ t \ \ t # 39;,我[2],& # 39;\ t \ \ t # 39;,我[3],& # 39;\ t \ t # 39;,我[4],& # 39;\ t \ t # 39;,我[5]),#按格式输出 def main (): 时间=url 才能;& # 39;http://www.weather.com.cn/weather/101200601.shtml& # 39; 时间=html 才能;get_page (url) 时间=wea_list 才能;[] parse_page才能(html、, wea_list) 打印才能(“\ t \ t \ \ \ t \ t \ \ \ t黄石市近7天天气预报“) print_wea才能(wea_list) if __name__ ==, & # 39; __main__ # 39;: 以前,,main () >
在格式输出这方面,我的这份代码还存在着很大的缺陷,把它发出来,欢迎大家跟我一起讨论,改进。