赞
踩
任务:爬取药监局网站中前2页每家企业的详情数据
1.通过抓包工具查看当前信息,首页信息是通过ajax动态请求,没有找到各详情页的url
2.查看动态加载数据的同一携带参数,不同详情页的URL一致,返回json串,对比发现详情页URL与id拼接即可获得对应企业详情页信息
4.捕获
#首页Url url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList' headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36' } id_list=[] #封装企业id参数 #控制页数,过大可能会干扰网站的正常运行 for page in range(1,3): page = str(page) data = { 'on': 'true', 'page': page, 'pageSize': '15', 'productName': '', 'conditionType': '1', 'applyname': '', 'applysn': '', } #返回首页信息的json串 id_json = requests.post(url=url,headers=headers,data=data).json() #将首页信息的response解析可得,id参数在list['ID']中 for dic in id_json['list']: id_list.append(dic['ID']) print('over')
post_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
#从id_list中获得id参数
for id in id_list:
data = {
'id':id
}
info_json = requests.post(url=post_url,headers=headers,data=data).json()
fp = open('./cosmetics_info.json','w',encoding='utf-8')
json.dump(info_json,fp=fp,ensure_ascii=False)
print('over')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。