requests模块基础

什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块。功能强大,用法简洁高效。


为什么要是用requests模块

  • 用以前的urllib模块需要手动处理url编码
  • 手动处理post参数
  • 处理cookie和代理操作繁琐

..............


requests模块

  • 自动处理url编码
  • 自动处理post参数
  • 简化cookie和代理操作

...............


如何使用requests模块

    • 安装:

      • pip install requests
    • 使用流程
      • 指定url
      • 基于requests模块发起请求
      • 获取响应对象中的数据值
      • 持久化存储
  •     
  • 1、基于requests模块的get请求 需求:爬取搜狗指定词条搜索后的页面数据
  •  import requests
    #指定url
    base_url = "https://www.sogou.com/web"
    #搜索词条的关键字
    query = {
    "query":"python"
    }
    #模仿User-Agent(伪造电脑版本信息以及什么浏览器信息)
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    }
    #requests.get(url, params=None, **kwargs),第一个是url地址,第二个关键字参数。
    response = requests.get(url=base_url,params=query,headers=headers)
    #因为发送的是get方式 所以返回的是一个字符串,即text可得相关html标签页
    print(response.text)
  • 2、基于requests模块ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据

  •  import requests
    url = "https://movie.douban.com/j/chart/top_list"
    #根据需求取数据
    start = input("enter start:")
    limit = input("enter limt:")
    #请求头里面的请求关键字
    param = {
    "type": "",
    "interval_id": "100:90",
    "action": "",
    "start": start,
    "limit": limit,
    }
    #伪造机型和浏览器
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    #开始get请求,因为是ajax的get方法所以请求应该是get
    response = requests.get(url=url,params=param,headers=headers)
    #返回的是一个json数据,因此要用json解析
    print(response.json())

    3、基于requests模块ajax的post请求 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定地点的餐厅数据

     import requests
    url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
    #输入保存信息地点
    keyword = input("enter a word:")
    #请求头里面的请求关键字
    for i in range(1,9):
    data = {
    "cname":"",
    "pid": "",
    "keyword": keyword,
    "pageIndex": i,
    "pageSize": "",
    }
    #伪造机型和浏览器
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    #因为是ajax的post方法所以post请求
    response = requests.post(url=url,data=data,headers=headers)
    #响应的是一个text数据,因此要用text解析
    fileName = str(i)+".txt"
    with open(fileName,"w",encoding="utf8") as f:
    f.write(response.text)

    显示文件有:

    4、综合练习 需求:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据http://125.35.6.84:81/xk/

     import requests
    
     url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList"
    ID_list = []
    # 伪造机型和浏览器
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    for i in range(1,16):
    data = {
    "on": "true",
    "page": i,
    "pageSize": "",
    "productName": "",
    "conditionType": "",
    "applyname": "",
    "applysn": "",
    } #因为是ajax的post方法所以post请求
    response = requests.post(url=url,data=data,headers=headers).json() ID_list.append(response["list"][0]["ID"])
    base_url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById"
    for i in ID_list:
    data = {
    "id": i,
    }
    # 响应的是一个json数据,因此要用json解析
    response = requests.post(url=base_url,data=data,headers=headers)
    print(response.json())

    Jupyter notebook应该是库出问题了,找了很久都没弄到原因,还一直以为自己代码出现问题了。换到pycharm成功运行

03爬虫-requests模块基础(1)的更多相关文章

  1. 05爬虫-requests模块基础(2)

    今日重点: 1.代理服务器的设置 2.模拟登陆过验证码(静态验证码) 3.cookie与session 4.线程池 1.代理服务器的设置 有时候使用同一个IP去爬取同一个网站,久了之后会被该网站服务器 ...

  2. 爬虫之requests模块基础

    一.request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求. 2. 为什么使用request模块 - urllib需要手动处理url编码 ...

  3. 03 requests模块基础

    1. requests 模块简介 什么是requests 模块 requests模块是python中原生的基于网络请求的模块,功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位.requests ...

  4. 爬虫requests模块 1

    让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...

  5. 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例

    requests模块的其他用法 #通常我们在发送请求时都需要带上请求头,请求头是将自身伪装成浏览器的关键,常见的有用的请求头如下 Host Referer #大型网站通常都会根据该参数判断请求的来源 ...

  6. 爬虫——requests模块

    一 爬虫简介 #1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. #2.互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是 ...

  7. 2 爬虫 requests模块

    requests模块 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,reques ...

  8. 爬虫--requests模块高级(代理和cookie操作)

    代理和cookie操作 一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests ...

  9. 爬虫--requests模块学习

    requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...

随机推荐

  1. LInux系统@安装CentOS7虚拟机

    安装Centos7虚拟机 1.打开VMware,点击创建新的虚拟机(至关重要) 2.选择自定义配置,点击下一步 3.选择虚拟机硬件兼容性<Workstation 12.0>,点击下一步 4 ...

  2. ASP.NET Core Basic 1-1 WebHost与项目配置

    .NET Core ASP.NET Core Basic 1-1 本节内容为WebHost与项目配置 项目配置文件 我们可以很清楚的发现在我们的文件中含有一个Json文件--appsettings.j ...

  3. MySQL之mysqldump的使用

    一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的inser ...

  4. XHTML 和 HTML 中的 iframe

    1. XHTML 有什么? XHTML是更严谨更纯净的HTML版本. 2.HTML和XHTML之间的差异 ①XHTML元素必须被正确的嵌套 /!--错误写法--/ <p><i> ...

  5. 玩转 SpringBoot 2 快速整合 | 丝袜哥(Swagger)

    概述 首先让我引用 Swagger 官方的介绍: Design is the foundation of your API development. Swagger makes API design ...

  6. Linux基础命令和文件权限

    Linux命令与文件权限 Linux基础命令   reboot  重启   cd         切换目录   cd ..     回到上一级目录   cd ~      回到主目录   cd /  ...

  7. ResourceManager学习之Application,状态机管理

    Application管理 YARN中,Application是指应用程序,他可能启动多个运行实例,每个运行实例由一个ApplicationMaster与一组该ApplicationMaster启动的 ...

  8. CodeForces 592D Super M DP

    Super M 题解: 定义 dp[u][0] 为遍历完u中的所有节点, 但不回到u点的路径花费值. 定义 dp[u][1] 为遍历完u中的所有节点, 且要回到u点的路径花费值. 转移方程. dp[u ...

  9. Good Inflation SPOJ - GOODG 李超树

    题目传送门 题意:刚开始有一个气球体积为空,现在有n个充气点,从1->n遍历这n充气点,每个充气点有vi,di,vi为走到这个充气点之后可以为气球充气vi的体积,di为选择了在这个点充气的时候, ...

  10. codeforces 768 B. Code For 1(二分)

    题目链接:http://codeforces.com/contest/768/problem/B 题意:给你一个数n和区间l,r,每次都能把任意数拆成n/2,n%2,n/2三个数,直到变成0和1,问区 ...