2020-12-04


前言

使用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文件的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值