刚学爬虫,跟着b站的视频写的,但是一直报错,在网找了很久实在找不到原因
import json
import requests
if __name__=="__main__":
url='http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp/'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.2242 SLBChan/103'
}
response_id = [] # 储存id
response_info = [] # 储存信息
for page in range(1,6):#爬取页码值1到5的数据
#参数
page=str(page)
data={
'on': 'true',
'page': page,#动态化爬取页码
'pageSize': '15',
'productName':'',
'conditionType': '1',
'applyname':'',
'applysn':''
}
#爬取一页中的所有信息
response_json=requests.post(url=url,data=data,headers=headers).json()
for dic in response_json['list']:#dic是个字典
response_id.append(dic['ID'])
#爬取所有id对应的信息并存入列表中
url2='http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp?'
for id in response_id:
id_data={
'ID':id
}
#发送请求
response_detail = requests.post(url=url2, headers=headers, data=id_data).json()
response_info.append(response_detail)
#永久化存储
fp=open('./makeupDetail.json','w',encoding='utf-8')
json.dump(response_info,fp=fp,ensure_ascii=False)
print('done!!!')
报错如下
.json()方法报错, 改成.text ,然后去解析你要的数据试下
json解析错误,打断点看请求可能没有获取到数据
你这个爬到的应该是html,不是json吧