当前位置:   article > 正文

爬虫测试

爬虫测试

任务:爬取药监局网站中前2页每家企业的详情数据

1.通过抓包工具查看当前信息,首页信息是通过ajax动态请求,没有找到各详情页的url
在这里插入图片描述
在这里插入图片描述

2.查看动态加载数据的同一携带参数,不同详情页的URL一致,返回json串,对比发现详情页URL与id拼接即可获得对应企业详情页信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.捕获

  • 获取前2页企业信息,从json串中封装企业列表信息,批量提取企业id参数
  • 使用详情页url请求数据,将详情页和id参数拼接获得指定页码的企业详情页信息
  • 保存
#首页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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

在这里插入图片描述
在这里插入图片描述

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1004846
推荐阅读
相关标签
  

闽ICP备14008679号