基于python网络爬虫天气_Python网络爬虫之中国天气网
大家好,今天我们来讲讲怎么用python对中国天气网进行爬取并且对爬取到的数据进行数据可视化的显示
这就是我们今天要爬取的内容,将中国天气网上的华北、东北等地区七天内的天气数据进行一个爬取,并且对最高气温和最低气温的各个城市进行数据可视化
我们由网页可以看出这里是没有运用ajax等加载技术的,这样比较方便我们一个爬虫新手对其进行爬取,在爬取过程中只需要对一些文本进行格式化就行
import requests
from bs4 import BeautifulSoup
from lxml import html
from pyecharts.charts import Bar
#定义两个全局变量,对于最冷温度城市和最热温度城市进行一个放入
All_MinData = []
All_MaxData = []
def parse_page(url):
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
#'Referer': 'http://www.weather.com.cn/textFC/hb.shtml'
}
response = requests.get(url=url, headers=header)
text = response.content.decode('utf-8')
soup = BeautifulSoup(text,'lxml')
tables = soup.find_all('table')[5:]
for table in tables:
trs = table.find_all('tr')[3:] #[2:]对进行筛选
for tr in trs: # 打印北京这个区块下面市区的天气情况
tds = tr.find_all('td')
city_td = tds[0] # stripped_strings这个方法可以对文本中的空格行进行删除只提取出其中的文字信息
city = list(city_td.stripped_strings)[0] #获取城市的名字
weather_td = tds[1]
cityweather = list(weather_td.stripped_strings)[0] #获取天气的现象
mintempl_td = tds[-2]
min_templ = list(mintempl_td.stripped_strings)[0] #获取最低的温度
maxteml_td = tds[-5]
max_templ = list(maxteml_td.stripped_strings)[0] # 获取最高的温度
All_MinData.append({"city":city,"min_templ":int(min_templ)})
All_MaxData.append({"city": city, "max_templ": int(max_templ)})
print({"city":city,"cityweather":cityweather,"max_templ":max_templ,"min_templ":min_templ})
def main():
urls ={
'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'
}
for url in urls:
parse_page(url)
All_MinData.sort(key=lambda data:data['min_templ'])
print(All_MinData)
mindata = All_MinData[0:10]
All_MaxData.sort(key=lambda data: data['max_templ'],reverse=True)
print(All_MaxData)
maxdata = All_MaxData[0:10]
mincity = list(map(lambda x:x['city'],mindata))
mintempl = list(map(lambda x:x['min_templ'],mindata))
maxcity = list(map(lambda y:y['city'],maxdata))
maxtempl = list(map(lambda y:y['max_templ'],maxdata))
minchart = Bar()
maxchart = Bar()
minchart.add_xaxis(mincity) #导入pyecharts中的Bar柱状图生成数据
minchart.add_yaxis("中国天气最高气温排行榜", mintempl)
minchart.render('cooltemperature.html')
maxchart.add_xaxis(maxcity)
maxchart.add_yaxis("中国天气最高气温排行榜", maxtempl)
maxchart.render('hottemperature.html')
if __name__ == '__main__':
main()
这里就是小编所写的代码,因为每个省份的第一个数据不好进行修改,所以我直接从第二个城市进行选择,这里面用到的几个库pyechart还有requests库都需要自己pip一下。
基于python网络爬虫天气_Python网络爬虫之中国天气网相关推荐
- python sub 不区分大小写_Python网络爬虫入门篇
1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. Python入门篇:https://www.cnblo ...
- python 爬虫框架_Python网络爬虫-scrapy框架的使用
1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...
- python 爬虫论_Python网络爬虫(理论篇)
欢迎关注公众号:Python爬虫数据分析挖掘,回复[开源源码]免费获取更多开源项目源码 网络爬虫的组成 网络爬虫由控制节点,爬虫节点,资源库构成. 网络爬虫的控制节点和爬虫节点的结构关系 控制节点(爬 ...
- python网络爬虫学习_python网络爬虫学习笔记
介绍: 网络爬虫的名字非常有意思,英文名称web spider. 真得非常形象.蜘蛛结网为了获取食物,而我们的爬虫程序,也是为了获取网络上的资源. 这篇blog是本人学习过程中的记录.学习过程中,使用 ...
- python网络爬虫应用_python网络爬虫应用实战
原标题:python网络爬虫应用实战 Python这门编程语言包罗万象,可以说掌握了python,除了一些特殊环境和高度的性能要求,你可以用它做任何事. Python作为一门脚本语言,它灵活.易用.易 ...
- python爬虫数据挖掘_Python网页爬虫文本处理科学计算机器学习数据挖掘兵器谱...
转载自"我爱自然语言处理":http://www.52nlp.cn,已获得授权.更多内容可见公众号:"牛衣古柳"(ID:Deserts-X). 周末时看到这篇不 ...
- python开发网络小工具_python 网络工具
书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf 简介 掌握Python的网络和安全 掌握Python ...
- python网络编程项目_python网络编程详解
最近在看<UNIX网络编程 卷1>和<FREEBSD操作系统设计与实现>这两本书,我重点关注了TCP协议相关的内容,结合自己后台开发的经验,写下这篇文章,一方面是为了帮助有需要 ...
- python网络编程项目_Python网络编程攻略
第1章套接字.IPv4和简单的客户端/服务器编程 本章攻略: 打印设备名和IPv4地址 获取远程设备的IP地址 将IPv4地址转换成不同的格式 通过指定的端口和协议找到服务名 主机字节序和网络字节序之 ...
最新文章
- LeetCode简单题之找到小镇的法官
- React源码学习——ReactClass
- jmeter最大请求数_jmeter单机最大并发数_动漫台
- 微软Office Online服务安装部署及wopi代码实现--------域控制服务器安装
- 软件工程心理学之3---甲方项目负责人 PK 乙方
- 团队开发——冲刺1.d
- NTFS文件系统的简述
- python监控网页更新_python监控网页更新
- 真正厉害的产品经理,都是“数据思维”的高手
- 除以13(信息学奥赛一本通-T1175)
- 【转】Java 单例模式详解
- python 引入同一路径的类_Python实现Wordcloud生成词云图的示例
- 太实用了 Python 合成多张图片到PDF格式
- 三阶魔方CFOP cross总结
- IOUtils pom 依赖
- 好看的css按钮样式收集
- HDAO 全新项目落地,带动区块链新一轮牛市
- 微信加密与登录验证分析
- 益聚星荣:不打老婆的即时到账”?还呗贷款平台广告词惹争议
- js数组对象按照中文拼音排序