京东-优惠雷达
新人页面
精选商品
首月0月租体验,领12个月京东PLUS
自营热卖

利用python进行新型肺炎历史数据下载,时间从1月24日开始至今,分省将数据下载到本地,保存为csv

君醉相思 1年前   阅读数 117 0

鉴于之前,实时获取丁香医生上的肺炎数据的工作,可以参照我的博客:肺炎数据下载,大家对于历史数据获取比较关心,的确如此,好在有网友先见之明,在数据公布开始,就进行了历史数据的爬取与存储,从而对历史数据的下载成为可能,这里特别感谢知乎用户:李二蛋。
基于其提供的数据接口,从而实现肺炎历史数据的下载。这里将源代码打包成exe工具,可直接使用。

工具下载地址:

链接:https://pan.baidu.com/s/1UN6NES4Y92zbqUMKtPT4ew
提取码:o2c8

效果如下:

在这里插入图片描述

源代码如下:

import requests,re
import json
import time
import csv
print("#########"
      " 版权所有:殷宗敏 & 数据接口来源:知乎 李二蛋  & 在此表示感谢!"
      "##########")
provinceNames = ['湖北省', '广东省', '河南省', '浙江省', '湖南省', '安徽省', '江西省', '江苏省', '重庆市', '山东省', '四川省', '黑龙江省', '北京市', '上海市', '福建省', '河北省', '陕西省', '广西壮族自治区', '海南省', '云南省', '贵州省', '山西省', '辽宁省', '天津市', '甘肃省', '吉林省', '内蒙古自治区', '新疆维吾尔自治区', '宁夏回族自治区',  '青海省', ]
for pro in provinceNames:
    url = 'https://lab.isaaclin.cn/nCoV/api/area?latest=0&province='+pro
    html = requests.get(url).text

    unicodestr=json.loads(html)  #将string转化为dict

    dat = unicodestr["results"]

    header = ['时间', '城市', '确诊人数', '疑似病例', '死亡人数', '治愈人数']
    with open('./'+pro+'.csv', encoding='utf-8-sig', mode='w', newline='') as f:
        # 编码utf-8后加-sig可解决csv中文写入乱码问题
        f_csv = csv.writer(f)
        f_csv.writerow(header)
    f.close()

    def save_data(data):
        with open('./'+pro+'.csv', encoding='UTF-8', mode='a+', newline='') as f:
            f_csv = csv.writer(f)
            f_csv.writerow(data)
        f.close()
    for i in dat[:-10]:
        tim = i.get('updateTime')
        timeArray = time.localtime(tim/1000)
        formatTime = time.strftime("%Y/%m/%d %H:%M", timeArray)
        new_list = i.get('cities')

        j = 0
        while j < len(new_list):
            data = (formatTime)
            confirm = (new_list[j]['confirmedCount'])
            city = (new_list[j]['cityName'])
            suspect = (new_list[j]['suspectedCount'])
            dead = (new_list[j]['deadCount'])
            heal = (new_list[j]['curedCount'])

            tap = (data, city, confirm, suspect, dead, heal)
            save_data(tap)

            j += 1
    print(pro+"的数据下载成功!")
print("#########下载结束!(备注:香港、台湾、澳门、西藏无市区数据)#########")

关注微信公众号:python趣味爱好者,后台回复:肺炎数据,可以获取该exe程序和源代码文件。
二维码如下:
在这里插入图片描述

发布了12 篇原创文章 · 获赞 24 · 访问量 1万+

注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: