0
点赞
收藏
分享

微信扫一扫

解析国家药监局化妆品公司许可信息


所谓掌握了requests库就等于掌握了爬虫的半壁江山
所以本例选用requests库

  • 之所以拿“国药监”网站来进行学习是因为,我们要获取的数据均是post请求且采取Ajax的方式在页面间传递,还在于我们要解析的数据需要两次请求,所以这就很考研对问的深究能力,综合性一般
  • 据分析可以得出,我们在第一次请求的时候要拿的是,公司数据对应的id
  • 第二次我们根据id去请求相应的数据
  • 需要注意的是,我们所得到的是json类型
  • 在本例的最后,可以对已经获取的数据进行分析,得到自己想要的数据
  • 因本例的学习性质,所以不再将数据进行分析

#!/usr/bin/env python
# encoding: utf-8

"""
@file: 国家药监局化妆品公司许可信息.py
@time: 2020/2/23 21:58
"""

import requests


def post_GY():
# 批量获取企业id
url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/80.0.3987.116 Safari/537.36'
}

id_list = [] # 暂存企业id
word = int(input('请输入想要爬取的页数:'))
for page in range(1, word + 1):
page = str(page)
data = {
'on': 'true',
'page': page,
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname': '',
'applysn': ''
}

json_ids = requests.post(url=url, data=data, headers=headers).json()
for dic in json_ids['list']:
id_list.append(dic['ID'])

# 获取企业详情数据
post_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
for id in id_list:
dat_id = {
'id': id
}
detail_json = requests.post(url=post_url, data=data_id, headers=headers).json()
print(detail_json)
print('解析完成!')


if __name__ == '__main__':
post_GY()

未经允许不得擅用


举报

相关推荐

0 条评论