二 python爬虫之基于requests模块学习

基于如下5点展开requests模块的学习

1 什么是requests模块

 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。

2 为什么要使用requests模块

因为在使用urllib模块的时候,会有诸多不便之处,总结如下:

  1. 手动处理url编码
  2. 手动处理post请求参数
  3. 处理cookie和代理操作繁琐

3 使用requests模块:

  1. 自动处理url编码
  2. 自动处理post请求参数
  3. 简化cookie和代理操作

4 如何使用requests模块

安装:pip install requests
使用流程

  1. 指定url
  2. 基于requests模块发起请求
  3. 获取响应对象中的数据值
  4. 持久化存储

5 练习综合案例-取爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据

# 2020-10-25

import requests
import json
if __name__=="__main__":

    # 指定url
    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/86.0.4240.75 Safari/537.36'
    }
    ID_list = []  # 存储企业ID
    ID_AllList = []  # 存储所有企业的详细信息
    # 参数的封装
    for page in range(1,3):
        page = str(page)
        data = {
            'on': 'true',
            'page': page,
            'pageSize': '15',
            'productName':'',
            'conditionType':'1',
            'applyname':'',
            'applysn':'' ,
        }
        # 发送请求
        response = requests.post(url=url,headers=headers,data=data)
        # 获取数据
        page_idlist= response.json() #字典类型
        # print(page_idlist)
        for dic in page_idlist['list']:
            ID_list.append(dic['ID'])
        print(page)
    print(ID_list)

    # 通过id 获取企业详情数据
    post_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
    for id in ID_list:
        post_data = {
            'id': id
        }
        response = requests.post(url=post_url,headers=headers,data=post_data)
        all_ms =response.json()
        #print(all_ms)
        ID_AllList.append(all_ms)
    with open('./06_all_list.json','w',encoding='utf-8') as fp:
        json.dump(ID_AllList,fp=fp,ensure_ascii=False)

    print('爬取完成!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值