使用python爬取疫情数据

以夸克网站为例子,以下是代码

import requests
import json
#获取网页内容
def get_page(url):
    #请求头用来表示用户身份的(像上学期的那个就会遇到404的那种情况这里可以解决)
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.9 Safari/537.36'}
    try:
        r=requests.get(url,headers=headers)
        r.raise_for_status()#异常处理,200则为正常
        r.encoding=r.apparent_encoding#从服务器返回的网页内容猜测编码方式,但是可以查,一般为utf-8
        return r.json()#如果响应内容为JSON格式数据,该方法可解析JSON数据
    except Exception as e:
        print("Error")
        return ""
        #提取信息
#刚开始爬的是网易的,由于标签有点多,就爬夸克的,以下是夸克的
import pandas as pd
def parse_page(data):
    province=data['list']#找到33个省的信息
    pdata=[]#保存省的信息
    for i in range(33):#33个省
        city=province[i]['list']
        for j in city:
            temp={}
            temp["省份"]=j["province"]
            temp["城市"]=j["city"]
            temp["确诊"]=j["sure_cnt"]
            temp["疑似"]=j["like_cnt"]
            temp["死亡"]=j["die_cnt"]
            temp["治愈"]=j["cure_cnt"]
            pdata.append(temp)
    #print(pdata)
    result=pd.DataFrame(pdata)
    return result
    #数据存储
def save_file(data_df):
    data_df.to_excel("G:\\a大二第二学期\\数据采集与预处理\\作业\\全国各市疫情分布.xlsx",index=False)#index=False表示不到处行序号,而且注意“\\”
    print("恭喜你,保存成功啦!")
#主函数
if __name__ == '__main__':
    url='https://api.m.sm.cn/rest?format=json&method=Huoshenshan.healingCity&mapType=1'#这里容易出错,把把最后&和后面的删掉有这个就不是ajex模式了就不能用json
    hurt_json=get_page(url)
    pdata=parse_page(hurt_json)
    save_file(pdata)
``

你可能感兴趣的:(使用python爬取疫情数据)