【Python】爬虫入门5:跨页面请求、翻页爬取数据
源代码#!/usr/bin/env python# -*- coding: UTF-8 -*-# 需求:获取化妆品生产许可企业信息# 内容包含:1. 用页面1的内容作为参数,到页面2获取数据 2.翻页爬取# noinspection PyUnresolvedReferencesimport jsonimport requestsif __name__ == '__main__':# UA伪装:将访
·
源代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# 需求:获取化妆品生产许可企业信息
# 内容包含:1. 用页面1的内容作为参数,到页面2获取数据 2.翻页爬取
# noinspection PyUnresolvedReferences
import json
import requests
if __name__ == '__main__':
# UA伪装:将访问对象伪装为浏览器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
}
# 爬虫主体
url = "http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList"
id_list = [] # 存所有公司的id
url2 = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
all_data_list = [] # 用于存放最终数据
num=0; #统计一共几条数据
for page in range(1,4) :#需要爬取的页码范围(本例为 1 2 3 页)
page=str(page) #转换为字符串
data = {
'on': 'true',
'page': page,
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname': '',
'applysn': ''
}
#获取当前页面的信息,取出所有公司的id
dic_json_ids = requests.post(url=url, data=data, headers=headers).json()
for dic in dic_json_ids['list']:
id_list.append(dic['ID'])
num=num+1
#将获取到的id作为参数,到页面2获取详细信息
for id in id_list:
data={
'id':id
}
detail=requests.post(url=url2,data=data,headers=headers).json()
#print(detail)
all_data_list.append(detail)
#数据持久化
fp=open('化妆品生产许可企业名单.json','w',encoding='utf-8')
json.dump(all_data_list,fp=fp,ensure_ascii=False)
print('爬取完毕!,共%d条数据',num);
结果:
更多推荐
已为社区贡献5条内容
所有评论(0)