爬取页数大了报错
import requestsimport json
if __name__ == '__main__':
# UA伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.78'
}
id_list = []#储存企业id
all_data_list = []#储存企业详细数据
# 批量获取不同企业的id值
url ='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
#参数的封装
for line in range(1,300):
line = str(line)
data ={
'on': 'true',
'page': line,
'pageSize': '15',
'productName':'',
'conditionType': '1',
'applyname':'',
'applysn':''
}
json_ids =requests.post(url=url,headers=headers,data=data).json()
for dic in json_ids['list']:
id_list.append(dic['ID'])
#获取企业详细数据
post_url ='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
for id in id_list:
data_s ={
'id':id
}
detail_json = requests.post(url=post_url,headers=headers,data=data_s).json()
#print(detail_json,'---------end----------')
all_data_list.append(detail_json)
#持久化储存
fp = open('allData.json','w',encoding='utf-8')
json.dump(all_data_list,fp=fp,ensure_ascii=False)
print('爬取结束')
Traceback (most recent call last):
File "D:\pythonProject3\爬虫\药监总局相关数据爬取.py", line 25, in <module>
json_ids =requests.post(url=url,headers=headers,data=data).json()
File "C:\Users\hasee\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 910, in json
return complexjson.loads(self.text, **kwargs)
File "C:\Users\hasee\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\hasee\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\hasee\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
数据流非json格式 本帖最后由 suchocolate 于 2021-8-27 09:21 编辑
line超过50之后就会爬不出json了,你核实一下页面有没有那么多页吧。 suchocolate 发表于 2021-8-26 21:02
line超过50之后就会爬不出json了,你合适一下页面有没有那么多页吧。
有379页
wp231957 发表于 2021-8-26 18:16
数据流非json格式
没有看懂{:5_96:} 669021067 发表于 2021-8-27 00:33
有379页
page50能拿到数据,page51开始就拿不到了,你去手工核实一下51页之后的数据,我这无法登陆这个网页。
import requests
if __name__ == '__main__':
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
data = {
'on': 'true',
'page': 51,
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname': '',
'applysn': ''
}
r = requests.post(url=url, headers=headers, data=data)
print(r.text)
suchocolate 发表于 2021-8-27 15:06
page50能拿到数据,page51开始就拿不到了,你去手工核实一下51页之后的数据,我这无法登陆这个网页。
是的,网站上第49页往后面就看不了了,点下一页没有数据异常
页:
[1]