博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬虫爬取中国天气网各城市天气数据(柱状图展示和中国地图展示)(pyquery+pyecharts )...
阅读量:4330 次
发布时间:2019-06-06

本文共 2688 字,大约阅读时间需要 8 分钟。

python爬虫爬取中国天气网各城市天气数据(柱状图展示和中国地图展示)(pyquery+pyecharts )

1、柱状图展示版本:

使用pyquery爬取了中国天气网各城市的最高温度,(因天气网到了傍晚会显示当天的温度为空,所以这里爬取的是天气网前一天(即昨天)的数据。

对爬取到的最高温度数据按温度从高到低排序,并使用pyecharts的柱状图进行展示。

from pyquery import PyQuery as pqlist=[]listdept=[]base='http://www.weather.com.cn'url='http://www.weather.com.cn/textFC/hb.shtml'doc = pq(url=url,encoding='utf-8')for dept in doc('.lq_contentboxTab2 li a'):    listdept.append(base+pq(dept).attr('href'))for url in listdept[:-1]:    doc = pq(url=url,encoding='utf-8')    provinces=doc('.conMidtab')[1]    for province in provinces:        str_province=pq(province)('.rowsPan a').html()        citys=pq(province)('tr')        for city in citys[2:]:            if citys.index(city)==2:                list.append({
'city':pq(city[1])('a').html(),'max':pq(city[4]).html()}) else: list.append({
'city':pq(city[0])('a').html(),'max':pq(city[3]).html()})list=sorted(list,key=lambda x:int(x['max']),reverse=True)citylist=[]maxlist=[]temperlist=[]for item in list: citylist.append(item['city']) maxlist.append(item['max'])from pyecharts import Barbar = Bar("最高温度排名", "by babihuang")bar.add("最高温度", citylist, maxlist,is_more_utils=True)bar.show_config()bar.render()

2、中国地图展示版本:

如果地图不能展示,请使用PIP安装地图包:

pip install echarts-countries-pypkg  pip install echarts-china-provinces-pypkg  pip install echarts-china-cities-pypkg

因为天气数据里涉及的城市并没有在地图包中完整匹配,在此只在地图上显示每个省的省会的数据。

from pyquery import PyQuery as pqlist=[]listdept=[]base='http://www.weather.com.cn'url='http://www.weather.com.cn/textFC/hb.shtml'doc = pq(url=url,encoding='utf-8')for dept in doc('.lq_contentboxTab2 li a'):    listdept.append(base+pq(dept).attr('href'))for url in listdept[:-1]:    doc = pq(url=url,encoding='utf-8')    provinces=doc('.conMidtab')[1]    for province in provinces:        str_province=pq(province)('.rowsPan a').html()        citys=pq(province)('tr')        for city in citys[2:3]:            if citys.index(city)==2:                list.append({
'city':pq(city[1])('a').html(),'max':pq(city[4]).html()}) else: list.append({
'city':pq(city[0])('a').html(),'max':pq(city[3]).html()})list=sorted(list,key=lambda x:int(x['max']),reverse=True)temperlist=[]from pyecharts import Geofor item in list: temperlist.append((item['city']+"市",item['max']))data = temperlistgeo = Geo("全国省会城市高温排名", "by babihuang", title_color="#fff", title_pos="center",width=1200, height=600, background_color='#404a59')attr, value = geo.cast(data)geo.add("", attr, value, visual_range=[0, 45], visual_text_color="#fff", symbol_size=15, is_visualmap=True)geo.show_config()geo.render()

 

转载于:https://www.cnblogs.com/babihuang/p/9101421.html

你可能感兴趣的文章
接口测试用例
查看>>
面试:用 Java 实现一个 Singleton 模式
查看>>
Sybase IQ导出文件的几种方式
查看>>
案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>
POJ 3267 The Cow Lexicon(动态规划)
查看>>
设计原理+设计模式
查看>>
音视频处理
查看>>
tomcat 7服务器跨域问题解决
查看>>
前台实现ajax 需注意的地方
查看>>
Jenkins安装配置
查看>>
个人工作总结05(第二阶段)
查看>>
Java clone() 浅拷贝 深拷贝
查看>>
深入理解Java虚拟机&运行时数据区
查看>>
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>