俗话说的好,“授之以鱼不如授之以渔”,所以小编今天就把爬疫情历史数据的方法分享给你们。
基本思路:分析腾讯新闻“抗肺炎”版块,采用“倒推法”找到疫情数据接口,然后用python模拟请求,进而保存疫情历史数据。
一、分析数据接口
1.进入海外疫情主页,分析海外各国疫情历史数据接口:
https://news.qq.com/zt2020/page/feiyan.htm#/global
打开流量分析工具,以“美国”为例,点击详情
选中第一个出现的json文件,发现响应数据为美国从1月28日至今天的疫情数据,包括确诊新增(confirm_add)、确诊(confirm)、治愈(heal)以及死亡(dead)数据。
该次请求的具体信息为:
以post请求的方式,网址为:
https://api.inews.qq.com/newsqa/v1/automation/foreign/daily/list?country=国家名称
2. 进入国内疫情主页,分析国内各省疫情历史数据接口:
https://news.qq.com/zt2020/page/feiyan.htm#/global
打开流量分析工具,以“黑龙江”为例,点击详情
选中第一个出现的json文件,发现响应数据为黑龙江从1月28日至今天的疫情数据,包括确诊新增(confirm_add)、确诊(confirm)、治愈(heal)以及死亡(dead)数据
该次请求的具体信息为:
以post请求的方式,网址为:
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=各省名称
3.同理分析出省内各市的历史数据接口:
以post请求的方式,网址为:
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=省名称&city=市名称
4.分析找到海外各国、国内各省、省内各市的名称
打开流量分析工具,在网址中输入:
https://news.qq.com/zt2020/page/feiyan.htm#/global
①打开请求网址为:
https://view.inews.qq.com/g2/getOnsInfoname=disease_foreign&callback=jQuery34105534161076800497_1587272333891&_=1587272333892
的响应窗口:
返回数据中包含所有国家的名称。
②打开请求网址为:
https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=jQuery34105534161076800497_1587272333887&_=1587272333888的响应窗口:
返回数据包含全国各省市的名称。
第二步:开始写程序
1.模拟爬取海外各国历史疫情数据
根据第一步分析结果,先爬取各个国家名称,然后构造url爬取各个国家的历史数据代码如下:
2.模拟爬取国内各省疫情数据根据第一步分析结果,先爬取各个省的名称,然后构造url爬取各个省的历史数据,代码如下:
3.模拟爬取省内各市疫情数据
根据第一步分析结果,先爬取该省各市的名称,然后构造url爬取各个市的历史数据,代码如下:
第三步:效果展示
1.海外各国疫情数据:
2.国内各省疫情数据:
3.黑龙江各市疫情数据:
网友评论