python json爬虫企业信息,为什么提示keyerror呢

爱企查 爱企查是百度推出的企业信用查询工具,提供最全最新的企业信息实时查询,企业相关的工商信息查询,股东查询,主要成员查询,变更记录查询,网站备案查询,对外投资查询,分支机构查询,年报查询,风险警示查询,口碑舆情信息查询,失信人查询;提供北京、上海、广州、武汉、河南、河北、浙江、安徽、山东、湖南等全国企业工商登记信息,公司工商注册登记信息信用查询服务以及企业诉讼查询,商标查询和专利查询。查询企业信息就到爱企查官网! https://aiqicha.baidu.com/m/s?q=%E6%9A%A8%E5%8D%97%E5%A4%A7%E5%AD%A6&t=0&VNK=ae14884b
想从这个网址爬参保人数

代码运行结果提示结果如下,
img

代码如下
import requests
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5977.400 LBBROWSER/10.1.3752.400"}
res_music = requests.get(' https://aiqicha.baidu.com/detail/basicAllDataAjax?pid=43252658652170%27,headers=headers )
json_music = res_music.json()
list_music = json_music["data"]["basicData"]["insuranceInfo"]
print(list_music)

只提data,也提示keyerror,要怎么修改呢?

要添加Referer头,要不返回的是{'status': -1, 'msg': '非法操作'}内容,当然会出错。。。有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img


import requests
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5977.400 LBBROWSER/10.1.3752.400",
         "Referer":"https://aiqicha.baidu.com/company_detail_83441420303286"}
res_music = requests.get('https://aiqicha.baidu.com/detail/basicAllDataAjax?pid=43252658652170',headers=headers)
json_music = res_music.json()
list_music = json_music["data"]["basicData"]["insuranceInfo"]
print(list_music)

res_music返回非法请求,无‘data'无data'键,所以报错,原因是在headers有些参数 没有传递,请求不被许可。
示例如下,可以获取数据:

import requests
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5977.400 LBBROWSER/10.1.3752.400", 'Referer': 'https://aiqicha.baidu.com/s?q=%E7%99%BE%E5%BA%A6&t=0','X-Requested-With': 'XMLHttpRequest'}
res_music = requests.get('https://aiqicha.baidu.com/index/latestClaimAjax', headers=headers)
json_music = res_music.json()
print(json_music)

print(json_music)输出看下内容。

先打印 json_music来看看有没有数据