今日作业:爬取药监总局中的企业详情数据
爬取药监总局中的企业详情数据
url:http://scxk.:81/xk/
需求:
将首页中每一家企业详情页对应的数据
每一家企业详情页对应的数据
将前5页企业的数据爬取即可。
难点:
用不到数据解析
所有的数据都是动态加载出来
提示:先试着将一家企业的详情页的详情数据爬取出来,然后再去爬取多家企业的数据
基于抓包工具定位到该ajax
请求的数据包,从该数据包中捕获到:
请求的url
请求的方式
请求携带的参数
看到响应数据
代码如下:
一家企业的详情页
# 一家企业的详情页url = 'http://scxk.:81/xk/itownet/portalAction.do?method=getXkzsById'data = {'id': '60e1d57d0bb1477d85e074c0428f47a0'}response = requests.post(url=url, data=data, headers=headers)page_text = response.json()print(page_text['businessPerson'], page_text['epsProductAddress'])
所有企业名单
# 所有企业名单:url = 'http://scxk.:81/xk/itownet/portalAction.do?method=getXkzsList'data = {'on': 'true','page': '1','pageSize': '15','productName': '','conditionType': '1','applyname': '','applysn': ''}response = requests.post(url=url, data=data, headers=headers)page_text = response.json()for name in page_text['list']:print(name['EPS_NAME'], name['ID'])
爬取五页ID和企业详情页
# 爬取五页ID和企业详情页for page in range(1, 6):url = 'http://scxk.:81/xk/itownet/portalAction.do?method=getXkzsList'data = {'on': 'true','page': str(page),'pageSize': '15','productName': '','conditionType': '1','applyname': '','applysn': ''}response = requests.post(url=url, data=data, headers=headers)page_text = response.json()for name in page_text['list']:id = name['ID']url = 'http://scxk.:81/xk/itownet/portalAction.do?method=getXkzsById'data = {'id': id}response = requests.post(url=url, data=data, headers=headers)page_text = response.json()print(page_text['businessPerson'], page_text['epsProductAddress'])