使用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)
``

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值