利用python進行新型肺炎歷史資料下載,時間從1月24日開始至今,分省將資料下載到本地,儲存為csv

新月清光發表於2020-02-16

鑑於之前,實時獲取丁香醫生上的肺炎資料的工作,可以參照我的部落格:肺炎資料下載,大家對於歷史資料獲取比較關心,的確如此,好在有網友先見之明,在資料公佈開始,就進行了歷史資料的爬取與儲存,從而對歷史資料的下載成為可能,這裡特別感謝知乎使用者:李二蛋。
基於其提供的資料介面,從而實現肺炎歷史資料的下載。這裡將原始碼打包成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程式和原始碼檔案。
二維碼如下:
在這裡插入圖片描述

相關文章