前言
使用request模块实现简易的网页采集器
一、requests模块实现网页采集器
注:指定url时需要使用到抓包工具
二、使用步骤
1.代码部分
代码如下:
import requests
import json
if __name__=="__main__":
#批量获取不同企业的id值
url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
#参数的封装
data={
'on': 'true',
'page': '1',
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname':'',
'applysn':'',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
#存储企业id
id_list=[]
json_ids=requests.post(url=url,headers=headers,data=data).json()
for dic in json_ids['list']:
id_list.append(dic['ID'])
#获取企业详情数据
post_url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
all_data_list=[]
for id in id_list:
data ={
'id': id
}
detail_json=requests.post(url=post_url,headers=headers,data=data).json
#print(detail_json,"--------ending--------")
all_data_list.append(detail_json)
fp=open('./allData.json','w',encoding='utf-8')
json.dump(all_data_list,fp=fp,ensure_ascii=False)
print('over!!!')
2.代码解读
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
进行UA伪装,因为现在大部分网页都具有反爬虫机制,进行UA伪装的目的就是伪装成浏览器去访问网页。
fp=open('./allData.json','w',encoding='utf-8')
json.dump(all_data_list,fp=fp,ensure_ascii=False)
对获取的数据源进行永久化存储。
总结
通过今天的学习,更深层次的了解了requests模块的应用,同时了解了应用抓包工具判断数据是否为动态数据,还学习到了关于json文件的操作。