文章目录
絮叨一下
爬虫爬来爬去,总是要服务于某些行业的,存在数据库中唯自己所用,做数据分析,搜索引擎,以及人工智能,训练模型.
前面已经分享了很多学习爬虫的笔记,比如urllib模块,requests模块,正则,BS4,selenium,牛逼的scrapy框架,以及一些反爬比如js加密,cookies反爬,非对称加密等,爬下来的数据就放在磁盘中是不是太过于浪费,自然需要分析一波,那就要生成可视化图表
这次就 爬取腾讯新闻下的疫情信息进行分析
网址: 腾讯新闻疫情信息
Pyecharts 模块
官网: pyecharts官网
这个模块是基于百度开源的数据可视化Echarts模块 重构产生的
pyecharts 目前只有 3 个开发者在参与日常的开发和维护工作 不得不说 大佬就是大佬,开发一时爽,重构火葬场,虽然上手简单,绘制的图表会入巧克力一般丝滑,但却不稳定
特性
简洁的 API 设计
囊括了 30+ 种常见图表
支持主流 Notebook 环境
可轻松集成至 Flask,Django 等主流 Web 框架
高度灵活的配置项,可轻松搭配出精美的图表
详细的文档和示例,帮助开发者更快的上手项目
多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持
这些都是官网给出的解释,用起来确实不错
版本问题
在2020-06-09已经更新迭代到version 1.8.1 版本 还有一个版本是0.5X版本,这个版本已经停止更新维护,而且有极其重要的的一点就是版本不兼容
安装
安装模块
pip3 install pyecharts
安装地图包
如果你需要绘制地图那还需要安装地图资源
全球国家地图:
pip3 install echarts-countries-pypkg
中国省级地图:
pip3 install echarts-china-provinces-pypkg
中国市级地图:
pip3 install echarts-china-cities-pypkg
下载官网示例
git clone https://github.com/pyecharts/pyecharts-gallery.git
或者你可以在这里下载:
官网示例
爬取数据
直接打开控制台 network 然后刷新 查找数据便发现这样一条请求
https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=jQuery341006574942485629642_1593907911556&_=1593907911557
一看就能明白 callback 删掉 然后_= 时间戳 直接time.time 就可以解决
获取请求
import requests
import time
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=&_={0}'.format(time.time()*1000)
response = requests.get(url).json()
print(response)
获取到一个json数据 是一个字典 字典中data 所对应是就是主要的信息 这种json 文件比较乱
可以新建一个json文件然后吧输出复制进去,吧一些干扰的删掉然后ctrl + Alt + L 进行格式化
这样会好分析不少
提取城市 以及 累计病例数
data = json.loads (response["data"])
all_city = data["areaTree"][0]["children"]
# 获取所有的城市信息
city_name = []
confirm = []
for city in range(len(all_city)):
city_name.append(all_city[city]["name"])
confirm.append(all_city[city]["confirm"])
这样我们就已经吧所有省,自治区的名称以及病例数量都放在两个列表中
柱状图
生成柱状图那就可以这样写
from pyecharts import options as opts
from pyecharts.charts import Bar
c = (
Bar()
.add_xaxis(city_name)
# x轴数据
.add_yaxis("数量",confirm )
# y轴数据
.set_global_opts(title_opts=opts.TitleOpts(title="各城市总计人数"))
# 全局配置
.render("bar_base.html")
)
如果看不明白这个栗子没关系 ,后文都会详细的说
这样在你的项目文件目录下就会生成一个bar_base 的一个html文件
浏览器打开看一下