统计自1.13以来全国肺炎人数的变化
数据源来自tx新闻的实时疫情新闻页面 网页链接
因为这个页面里面有一个chart,所以可以断定里面有我们想要的数据
找了找,在里面发现了一个API https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts
里面的数据是json字典嵌套列表,列表里再嵌套字典的,所以接下来就是数据处理了
完整代码
import requests,re
import json
import csv
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts'
html = requests.get(url).text
unicodestr=json.loads(html) //将string转化为dict
new_list = unicodestr.get("data") //获取data中的内容,取出的内容为str
a = json.loads(new_list) //对new_list再次进行load,使其变为dict才可使用
header = ['时间', '全国确诊人数', '全国疑似病例', '全国死亡人数', '全国治愈人数']
with open('./q_feiyan.csv', encoding='utf-8-sig', mode='w') as f:
//编码utf-8后加-sig可解决csv中文写入乱码问题
f_csv = csv.writer(f)
f_csv.writerow(header)
f.close()
def save_data(data):
with open('./q_feiyan.csv', encoding='UTF-8', mode='a+') as f:
f_csv = csv.writer(f)
f_csv.writerow(data)
f.close()
b = len(a)
i = 0
while i<b:
data = ("\t"+a[i]['date']) // \t解决写入csv小数(日期)自动省略前后的0问题
confirm = (a[i]['confirm'])
suspect = (a[i]['suspect'])
dead = (a[i]['dead'])
heal = (a[i]['heal'])
i+=1
tap = (data, confirm, suspect, dead, heal)
save_data(tap)