Python笔记-抓取新冠肺炎数据明细到excel文件

【功能】
抓取新冠肺炎各地市数据到excel文件 (python 3.7版本下调试成功)
【特点】
1、获取数据的网址:https://news.qq.com/zt2020/page/feiyan.htm
2、当前测试日期为2020年2月20日晚8点,目前抓取成功。但随着QQ网站随时更新,可能数据源会有所改变而导致抓取失败。但抓取及保存原理是相通的

抓取新冠肺炎数据演示.jpg

excel数据演示.jpg

【以下为代码,右上角有复制按钮,可一键复制】

# 从网页采集新冠肺炎统计数据并存入excel文件  仅做演示 Ver:20200220.01
import pandas as pd  # 导入pandas模块库,是读写EXCEL专用,安装时需要同时安装xlrd、xlwt、openpyxl这三个模块库
import requests
import json

# 从QQ网站,找到相关数据
url = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
# 开始抓取网页数据
data = json.loads(requests.get(url=url).json()["data"])

#我们可以看到JSON数据格式中:lastUpdateTime是数据的最新更新时间;
# areaTree中是全国详细的数据。 所以我们只提取中国部分的数据
china = data["areaTree"][0]["children"]

#现在国内的数据就全部在china变量中了,为了方便绘制地图,将各省份、各地市的数据提取出来备用。
data = []

# 开始获取省级的数据,本处为省级
for i in range(len(china)):
    data.append([
        # 省份,如湖北、广东等省份
        china[i]["name"], \
        # 地市,因为本行为省级别的,所以不需要填写地市名称,以合计二字表示
        "合计", \
        # 省今日新增确诊
        china[i]["today"]["confirm"], \
        # 省累计确诊总数
        china[i]["total"]["confirm"], \
        # 省累计死亡
        china[i]["total"]["dead"], \
        # 省死亡比例
        china[i]["total"]["deadRate"] \
        ])
    #继续向下钻取,获取该省份下,每个地市的数据
    for j in range( len(china[i]["children"])  ):
        # 本处为各地市的数据
        data.append([ \
            # 省份,如湖北、广东等省份
            china[i]["name"], \
            # 地市,如武汉、孝感等地市
            china[i]["children"][j]["name"], \
            # 地市今日新增确诊
            china[i]["children"][j]["today"]["confirm"], \
            # 地市累计确诊总数
            china[i]["children"][j]["total"]["confirm"], \
            # 地市累计死亡
            china[i]["children"][j]["total"]["dead"], \
            # 地市死亡比例
            china[i]["children"][j]["total"]["deadRate"] \
            ])

# list转dataframe 。此处实际就是EXCEL中各列的标题,个数要与上面列的个数相对应
df = pd.DataFrame(data, columns=['地区','城市','今日新增确诊','累计确诊总数','累计死亡','死亡比例'])
print(df)

# 保存到本地excel
df.to_excel("C://新冠肺炎明细.xlsx", index=False)
print('新冠肺炎列表已经采集完成并保存到文件【新冠肺炎.xlsx】,程序结束')

你可能感兴趣的:(Python笔记-抓取新冠肺炎数据明细到excel文件)