爬虫练习:使用requests模块 爬取化妆品生产许可信息管理系统服务平台
地址:http://scxk.nmpa.gov.cn:81/xk/
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/9/10 21:32
# @Author : aqiong
# @Site :
# @File : nationNMPA.py
# @Software: PyCharm
#国家
#url = http://scxk.nmpa.gov.cn:81/xk/
# http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList
#http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp?id=ff83aff95c5541cdab5ca6e847514f88
import requests
import json
if __name__ == '__main__':
#当刷新网页的时候,url没有变化,并且查看开发者工具,获得下面的url
list_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
#UA伪装
headers ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'
}
all_data = []#存放所有数据
for page in range(0,3):
data ={
'on': 'true',
'page': page,
'pageSize': '15',
'productName':'',
'conditionType': '1',
'applyname':'',
'applysn':''
}
response = requests.post(url=list_url,data=data,headers = headers)
dict_obj = response.json()
#dict_obj.get('list')是因为根据返回的response,可以看到数据都存放在key为 list 的数组中
for item in range(0,len(dict_obj.get('list'))):
url_id = dict_obj.get('list')[item].get('ID')#获得id,查看开发者工具可以看到是根据下面的get_url以及参数id获得响应数据
get_url ='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
data = {"id":url_id}
data_obj = requests.post(url=get_url,data=data,headers=headers).json()
all_data.append(data_obj)
with open('./nationNMPA.json','w',encoding='utf-8') as fp:
json.dump(all_data,fp=fp,ensure_ascii=False)
文件链接:https://files.cnblogs.com/files/aqiong/nationNMPA.zip
存储的文件截图: