敢说敢作敢为, 无怨无恨无悔。这篇文章主要讲述python爬虫-15-使用python爬取中国天气,然后将最低温排序进行绘图展示相关的知识,希望能为你提供帮助。
学以致用,我们这次使用?1、爬取流程梳理(1)整体定位?BeautifulSoup?
??模块,来爬取下中国天气网的天气信息,然后取出最低气温进行排序,并使用??pyecharts?
?绘图模块,进行图形的绘制。
首先我们要知道爬取的是哪个界面,界面的样式是什么;
文章图片
(2)范围定位
【python爬虫-15-使用python爬取中国天气,然后将最低温排序进行绘图展示】我们需要爬取的是,每一个地区的下面省份天气;
文章图片
(3)大致定位
每一个省份都划分成多个地区,或者多个市,我们需要依次来获取;
文章图片
(4)准确定位
当我们获取之后,截取里面的城市、最低气温。
文章图片
2、代码书写(1)整体定位
获取整个页面的代码;
import requests
Header =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/86.0.4240.198 Safari/537.36
def Requ_page(self_Url):
Page_Html = requests.get(self_Url, headers=Header)
print(Page_Html.content.decode(utf-8))
def main():
Url = http://www.weather.com.cn/textFC/hb.shtml
Requ_page(Url)
if __name__ == __main__:
main()
输出结果如下:
文章图片
(2)范围定位
获取我们需要的代码,去掉那些抬头和结尾;
代码如下:
import requests
from bs4 import BeautifulSoup
Header =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
def Requ_page(self_Url):
Page_Html = requests.get(self_Url, headers=Header)
One_Html = Page_Html.content.decode(utf-8)
Two_Html = BeautifulSoup(One_Html, html5lib)
Three_Htmls = Two_Html.find(div, attrs=class: conMidtab)
Tables = Three_Htmls.find_all(table)
for Table in Tables:
print(Table)
print("="*20)
def main():
Url = http://www.weather.com.cn/textFC/hb.shtml
Requ_page(Url)
if __name__ == __main__:
main()
输出结果如下:
文章图片
(3)大致定位
在我们获取到数据之后,筛选出来每一个城市的数据;
由于个?
?tr?
?中的信息不是我们所需要的,所以我们从第三个开始获取,代码如下:import requests
from bs4 import BeautifulSoup
Header =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
def Requ_page(self_Url):
Page_Html = requests.get(self_Url, headers=Header)
One_Html = Page_Html.content.decode(utf-8)
Two_Html = BeautifulSoup(One_Html, html5lib)
Three_Htmls = Two_Html.find(div, attrs=class: conMidtab)
Tables = Three_Htmls.find_all(table)
for Table in Tables:
Trs = Table.find_all(tr)[2:]
for index, tr in enumerate(Trs):
tds = tr.find_all(td)
print(tds)
print(= * 30)
def main():
Url = http://www.weather.com.cn/textFC/hb.shtml
Requ_page(Url)
if __name__ == __main__:
main()
输出结果如下:
文章图片
(4)准确定位
我们需要从中获取到城市、最低气温,并进行轮训,故而代码如下:
import requests
from bs4 import BeautifulSoup
Header =
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
ALL_DATA = https://www.songbingjia.com/android/[]
def Requ_page(self_Url):
Page_Html = requests.get(self_Url, headers=Header)
One_Html = Page_Html.content.decode(utf-8)
Two_Html = BeautifulSoup(One_Html, html5lib)
Three_Htmls = Two_Html.find(div, attrs=class: conMidtab)
Tables = Three_Htmls.find_all(table)
for Table in Tables:
Trs = Table.find_all(tr)[2:]
for index, tr in enumerate(Trs):
tds = tr.find_all(td)
city_td = tds[0]
if index == 0:
city_td = tds[1]
city = list(city_td.stripped_strings)[0]
temp_td = tds[-2]
min_temp = list(temp_td.stripped_strings)[0]
ALL_DATA.append("city": city, "min_temp": int(min_temp))
def main():
Urls_List = [
http://www.weather.com.cn/textFC/hb.shtml,
http://www.weather.com.cn/textFC/db.shtml,
http://www.weather.com.cn/textFC/hd.shtml,
http://www.weather.com.cn/textFC/hz.shtml,
http://www.weather.com.cn/textFC/hn.shtml,
http://www.weather.com.cn/textFC/xb.shtml,
http://www.weather.com.cn/textFC/xn.shtml,
http://www.weather.com.cn/textFC/gat.shtml
]
for i in Urls_List:
Requ_page(i)
if __name__ == __main__:
main()
print(ALL_DATA)
输出结果如下(篇幅原因,仅展示部分内容):
[city: 北京, min_temp: 14, city: 海淀, min_temp: 14, city: 朝阳, min_temp: 16, city: 顺义, min_temp: 15, city: 怀柔, min_temp: 14, city: 通州, min_temp: 14, city: 昌平, min_temp: 16
至此,我们使用python代码爬取中国天气网,来获取城市和最低气温的代码就完事儿了,但是我们是不是可以稍微展示一下呢,往下看。
3、结果展示这里我们使用到了一个?
?pyecharts?
??库,感兴趣的同学可以去??github?
?上看下,地址如下:https://pyecharts.org/#/
完整代码如下:
剩余内容请转至VX公众号 “运维家” ,回复 “177” 查看。
------ “运维家” ,回复 “177” ------
------ “运维家” ,回复 “177” ------
------ “运维家” ,回复 “177” ------
linux系统下,mknodlinux,linux目录写权限,大白菜能安装linux吗,linux系统创建文件的方法,领克linux系统怎么装软件,linux文本定位;
ocr识别linux,linux锚定词尾,linux系统使用记录,u盘有linux镜像文件,应届生不会Linux,linux内核64位,linux自启动管理服务;
linux计算文件夹大小,linux设备名称有哪些,linux能用的虚拟机吗,linux系统进入不了命令行,如何创建kalilinux,linux跟so文件一样吗。
推荐阅读
- 8. Vue - v-bind 绑定 Style 对象语法和 数组语法
- 客快物流大数据项目(十五)(DockeFile常用命令)
- 持续集成CI&CD之配置管理最佳实践
- Docker容器(将带UI的程序直接转为Web应用,so easy)
- Jetbrains GoLand 2021软件安装包和安装教程
- 虚拟机数据恢复Linux系统下误删除KVM虚拟机的数据恢复案例
- C#/VB.NET 将文本内容更改为大写
- openGauss安装前主机初始化
- 汇编语言入门-存储寄存器