1. GitHub代码练习地址:1.两种简单get请求方法:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac13_requests1.py
               2.带请求头与参数的get请求:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac14_requests2.py
  1. Requests-献给人类
      
      urllib模块的完美替换,二者功能基本相同
      HTTP for Humans,更简洁更友好
      继承了urllib的所有特征
      底层使用的是urllib3
      开源地址: https://github.com/requests/requests
      中文文档: http://docs.python-requests.org/zh_CN/latest/index.html
      安装: conda install requests
     
    一、两种get请求方法:

      requests.get(url)
      requests.request("get", url)
      可以带有headersparmas参数来请求
  2.  
  3. 二、requests下使用proxy代理
  1. proxies = {
    "http":"address of proxy",
    "https": "address of proxy"
    }
  2.  
  3. rsp = requests.request("get", "http:xxxxxx", proxies=proxies)
    代理有可能报错,如果使用人数多,考虑安全问题,可能会被强行关闭
  4.  
  5. 用户验证
    代理验证
    可能需要使用HTTP basic Auth 可以这样
    格式为 用户名:密码@代理地址:端口地址
    proxy = { "http": "china:123456@192.168.1.123:4444"}
    rsp = requests.get("http://baidu.com", proxies=proxy)
    web客户端验证
    如果遇到web客户端验证,需要添加auth=(用户名,密码)
    autu=("test1", "123456")#授权信息
    rsp = requests.get("http://www.baidu.com", auth=auth)
  6.  
  7. 三、requests下的cookiesession以及ssl证书相关问题
  1. cookie
    requests可以自动处理cookie信息
    rsp = requests.get("http://xxxxxxxxxxx")
    如果对方服务器给传送过来cookie信息,则可以通过反馈的cookie属性得到
    返回一个cookiejar实例
    cookiejar = rsp.cookies
  2.  
  3. 可以讲cookiejar转换成字典
    cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
  4.  
  5. session
    跟服务器端session不是一个东东
    模拟一次会话,从客户端浏览器链接服务器开始,到客户端浏览器断开
    能让我们跨请求时保持某些参数,比如在同一个session实例发出的 所有请求之间保持cookie
  6.  
  7. 创建session对象,可以保持cookie
    ss = requests.session()
  8.  
  9. headers = {"User-Agetn":"xxxxxxxxxxxxxxxxxx"}
  10.  
  11. data = {"name":"xxxxxxxxxxx"}
  12.  
  13. 此时,由创建的session管理请求,负责发出请求,
    ss.post("http://www.baidu.com", data=data, headers=headers)
  14.  
  15. rsp = ss.get("xxxxxxxxxxxx")
  16.  
  17. https请求验证ssl证书
    参数verify负责表示是否需要验证ssL证书,默认是True
    如果不需要验证ssl证书,则设置成False表示关闭
  18.  
  19. rsp = requests.get("https://www.baidu.com", verify=False)
    如果用verify=True访问某些证书有问题的网站会报错。

Python爬虫9-request包介绍及应用的更多相关文章

  1. Python爬虫教程-01-爬虫介绍

    Spider-01-爬虫介绍 Python 爬虫的知识量不是特别大,但是需要不停和网页打交道,每个网页情况都有所差异,所以对应变能力有些要求 爬虫准备工作 参考资料 精通Python爬虫框架Scrap ...

  2. python爬虫之urllib库介绍

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  3. python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)

    没事想爬下数据,就入了scrapy坑,跟着https://zhuanlan.zhihu.com/data-factory这篇教程走,中间被小数量的网站坑过,不过还是写出了爬虫~~ 切糕王子:毫无防御, ...

  4. python爬虫之requests库介绍(二)

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

  5. Python爬虫之requests库介绍(一)

    一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

  6. python爬虫之protobuf协议介绍

    前言 在你学习爬虫的知识过程中是否遇到下面的类型.如果有兴趣学习一下或者了解相关知识的,且不嫌在下才疏学浅,可以参考一下.欢迎各位网友的指正. 首先叙述一下问题的会出现的式样. 你可能会在请求参数中看 ...

  7. python爬虫之requests模块介绍

    介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...

  8. python爬虫之scrapy框架介绍

    一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等) ...

  9. python爬虫之request and BeautifulSoup

    1.爬虫的本质是什么? 模仿浏览器的行为,爬取网页信息. 2.requests 1.get请求 无参数实例 import requests ret = requests.get('https://gi ...

  10. Python 爬虫之request+beautifulsoup+mysql

    一.什么是爬虫?它是指向网站发起请求,获取资源后分析并提取有用数据的程序:爬虫的步骤: 1.发起请求使用http库向目标站点发起请求,即发送一个RequestRequest包含:请求头.请求体等 2. ...

随机推荐

  1. 第七章——集成学习和随机森林(Ensemble Learning and Random Forests)

    俗话说,三个臭皮匠顶个诸葛亮.类似的,如果集成一系列分类器的预测结果,也将会得到由于单个预测期的预测结果.一组预测期称为一个集合(ensemble),因此这一技术被称为集成学习(Ensemble Le ...

  2. java.lang.IllegalArgumentException: Request header is too large

    tomcat运行项目时,有一个请求过去后,后台报这样的错java.lang.IllegalArgumentException: Request header is too large原因:请求头超过了 ...

  3. 双层嵌套json字符串(即json对象内嵌json数组)解析为Map

    之前我层写过一篇文章,介绍了json与map的相互转化,但当时只涉及到单一的json对象或json数组,对json对象内嵌套这json数组的json字符串无法处理,这篇文章主要解决这个问题. 之前的那 ...

  4. 5.两分钟让你明白app后端有啥用

    app后端,也称为app后台,称呼不一样,但指的是同一个东西. 我一直都以app后端有啥用这个问题不用解释.但在网络上,有准备进行app创业的网友(是从传统行业过来的)问过这个问题,我这里就以app后 ...

  5. vue的传参方式和router使用技巧

    vue传参方法一 1,路由配置 { path: '/describe/:id', name: 'Describe', component: Describe } 2,使用方法 // 直接调用$rout ...

  6. Spring Boot中使用MyBatis注解配置详解(1)

    之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...

  7. &,|,^的用法

    &,|,~,^的用法 &按位与 |按位或 ~按位非 ^按位异或 举例: int x = 5; int y = 11; System.out.println(x|y); System.o ...

  8. I/O-----二进制文件的读写

    好吧  已经被I/O刷屏了 这是复制文件 DataInputStream  dis =new DataInputStream(new FileInputStream("src/pcl.jpg ...

  9. I/O----复制文本文件

    文件 "我的青春谁做主.txt" 位于 D 盘根目录下,要求将此文件的内容复制到 C:/myPrime.txt 中. package io.day03; import java.i ...

  10. SSIS 调试和故障排除

    SSIS内置的调试工具是非常完备的,主要是设置断点和查看变量值,这是在Package的设计阶段可以使用的工具,在Package部署到服务器之后,用户还可以使用事件处理程序以实现Package出错的自我 ...