'''对化妆品生产许可信息管理系统相关数据爬取
动态加载数据
1.主页url并没有数据,而是通过HXR加载的数据,获取对应的post请求url,拿到爬取数据的所有的id
2.获取详情页面的post请求url
3数据获取
'''
import requests
import json
if __name__ == '__main__':
#UA伪装
headers ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}
#批量获取企业的id
url_post = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList' #首页的url
url_xq = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById' #详情页的url
json_ids = [] #获取的所有的id
all_data_list = [] # 存储所有的数据信息
for page in range(1,5): #获取前5页的数据 5*15
page = str(page)
#封装参数
data = {
'on': 'true',
'page': page,
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname': '',
'applysn': ''
}
#发起请求
response_ids = requests.post(url=url_post,headers=headers,data=data).json()
for dic in response_ids['list']:
json_ids.append(dic['ID'])
# print(json_ids)
#根据所有的id获取企业详情数据
for id in json_ids:
data = {
'id':id
}
data_json = requests.post(url=url_xq,headers=headers,data=data).json()
# print(data_json)
all_data_list.append(data_json)
#持久化存储
fp = open('./alldatajson.json','w',encoding='utf-8')
json.dump(all_data_list,fp=fp,ensure_ascii=False)
pyton爬虫之request的POST方法
最新推荐文章于 2022-08-14 11:15:49 发布