以夸克网站为例子,以下是代码
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)
``