下载各省疫情历史数据
从百度提供的疫情数据网站下载,只针对该网站具体到省的数据
操作步骤
- 进入网站,从全国地图中进入到任意省份,以北京为例 https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_3&city=%E5%8C%97%E4%BA%AC-%E5%8C%97%E4%BA%AC
- 右键——检查
进入network,此时没有数据,点击刷新
Ctrl+shift+f:显示搜索
在搜索框输入容易被检索且重复性不高的数据,比如2160,具体操作如图所示
跳转到network后,在红框中的区域找到对应的链接,可以直接忽略js、jpg等内容,或者在上方的搜索框中搜索关键字
点击对应链接
右侧显示的网址即所需数据(从2.13到现在),对应的area可替换为所需省份
- 在python中使用request获取内容
import requests
url = 'https://voice.baidu.com/newpneumonia/getv2?from=mola-virus&stage=publish&target=trend&isCaseIn=1&area=%E8%BE%BD%E5%AE%81&callback=jsonp_1652526814976_84234'
response = requests.get(url).text
获取的字符串经过处理后可以转为json
import json
results = json.loads(results)
根据需要获取自己所需内容,并使用pandas将数据转为表格类型
import pandas as pd
# 获取省份名称,日期和确诊人数
provinceName = results["data"][0]["name"]
trend = results["data"][0]["trend"]
updateDate = trend["updateDate"]
confirmAll = trend["list"][0]
# 将其按照日期保存为列表
dataList = []
for i in range(dataLen):
dateTemp = updateDate[i]
confirmAllTemp = confirmAll[i]
dataList.append(
[dateTemp, confirmAllTemp])
# 使用pandas
df = pd.DataFrame(dataList)
df.columns = ["日期", "累计确诊"]
# 输出到excel
df.to_excel('output.xlsx', index=None)
可以将不同省份保存在不同的sheet中,在保存前后使用writer
writer = pd.ExcelWriter("output.xlsx")
……
df.to_excel(writer, index=None, sheet_name=provinceName)
……
writer.close()