Request库的安装与使用

安装

pip install reqeusts

Requests库的7个主要使用方法

  • requests.request() 构造一个请求,支撑以下各方法的基础方法
  • requests.get() 获取HTML网页的主要方法,对应HTTP的GET方法
  • requests.head() 获取HTML网页头信息的方法,对应HTTP的HEAD
  • requests.post() 向HTML网页提交POST请求的方法,对应HTTP的POST
  • requests.put() 向HTML网页提交PUT请求的方法,对应HTTP的PUT
  • requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
  • requests.delete() 向HTML页面提交删除请求,对应HTTP的DELETE

Response对象的属性

  • r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
  • r.text HTTP响应的正文字符串
  • r.encoding 从HTTP header中猜测的响应内容编码方式
  • r.apparent_encoding 从内容中分析出的响应编码方式
  • r.content HTTP响应内容的二进制形式

使用get方法的流程

检查r.status_code,如果返回200,继续处理,如果返回404,则说明访问出错。

encoding 和 apparent_encoding的区别

encoding是header的charset中记录的编码,若没有改标签,则默认为iso-8859-1
apparent_encoding是分析文本内容中出现的字符确定的编码。
一般来说如果文本编码识别错误,可以将apprent_encoding赋值给r.encoding

Requests库的异常

requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接
requests.HTTPError HTTP错误异常
requests.URLRquired URL确实异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout: 远程连接超时异常
requests.Timeout: 请求URL超时,产生超时异常
r.raise_for_status() 如果返回的状态码不是200,则会产生requests HTTPError异常

request方法

requests.requst(method,url,**kwargs)

  • method:请求方式,对应get/put/post等7种

    r = requests.request(‘GET’,url,**kwargs)
    r = requests.request(‘HEAD’,url,**kwargs)
    r = requests.request(‘POST’,url,**kwargs)
    r = requests.request(‘PUT’,url,**kwargs)
    r = requests.request(‘PATCH’,url,**kwargs)
    r = requests.request(‘DELETE’,url,**kwargs)
    r = requests.request(‘OPTIONS’,url,**kwargs)

url:页面的链接

**kwargs: 控制访问的参数,共13个

  • params: 字典或字节序列,作为参数增加到url中
  • data: 字典、字节序列或文件对象,作为Request的内容
  • json: JSON格式的数据,作为Request的内容
  • header: 字典,HTTP定制头
hd = {'user-agent':'Chrome/10'}
r = requests.request('POST','HTTP://python123.io/ws',headers=hd)
  • cookies:字典或CookieJar,Request中的cookie
  • auth :元组,支持HTTP认证功能
  • files: 字典类型,传输文件
fs = {'file':open('data.xls','rb')}
r = requests.request('POST','http://python123.io/ws',files=fs)
  • timeout:给请求设置超时时间
  • proxies: 字典类型,设定访问代理服务器,可以增加登录认证
pxs = {'http':'http://user:pass@10.10.10.1':1234'
'http':'http://10.10.10.1:4321'
}
r = requests.request('GET','http://www.baidu.com',proxies=pxs)
  • allow_redirects: True/False,默认为True,重定向开关
  • stream: True/False,默认为True,获取内容立即下载开关
  • verify: True/False,默认为True,认证SSL证书开关
  • cert: 本地SSL证书路径

Request库的安装与使用的更多相关文章

  1. Robot Framework中经常用的第三方库的安装方法

    pip升级:python -m pip install --upgrade pip 一.安装robotframework-selenium2library,相当于python中的selenium    ...

  2. Python3 urllib.request库的基本使用

    Python3 urllib.request库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urlli ...

  3. Python爬虫--- 1.1请求库的安装与使用

    来说先说爬虫的原理:爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来.这个时候就要用到请 ...

  4. Python3 常用爬虫库的安装

    Python3 常用爬虫库的安装 1 简介 Windows下安装Python3常用的爬虫库:requests.selenium.beautifulsoup4.pyquery.pymysql.pymon ...

  5. windows下python常用库的安装

    windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...

  6. Python爬虫学习==>第五章:爬虫常用库的安装

    学习目的: 爬虫有请求库(request.selenium).解析库.存储库(MongoDB.Redis).工具库,此节学习安装常用库的安装 正式步骤 Step1:urllib和re库 这两个库在安装 ...

  7. dev c++ Boost库的安装

    dev c++ 的boost库的安装步骤 然后点击“check for updates”按钮 最后点击“Download selected”按钮,下载完成后安装.... 给dev添加boost库文件, ...

  8. 机器学习库shark安装

    经过两天的折腾,一个对c++和机器学习库的安装都一知半解的人终于在反复安装中,成功的将shark库安装好了,小小纪念一下,多亏了卡门的热心帮忙. shark的安装主要分为以下几个部分: (1)下载 s ...

  9. Python库的安装方法

    Python库的安装方法 Python的解释器CPython是开源的,我们可以下载查看其源代码,同时,Python语言的各种库也都是开源的.利用Python语言编程,可用的库有很多,在Python官方 ...

随机推荐

  1. JS 通过url地址栏获取html页面名称

    有的时候需要获取页面名称,为此我在这里封装了一个方. 一.分别根据传递不同的参数,获取到html页面的名称. 通过传递参数,获取到html页面的名称:参数params 以下是参数解释说明 (1)par ...

  2. SpringBoot + Apache Shiro权限管理

    之前配置过Spring + SpringMVC + JPA + Shiro后台权限管理 + VUE前台登录页面的框架,手动配置各种.xml,比较繁琐,前几天写了个SpringBootShiro的Dem ...

  3. ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->发布)

    一.简介 在讲本篇博文之前,需要你熟知怎么自定义ReactNative组件,然后才好学习将自定义的ReactNative组件制作成第三方库.本文中的自定义的ReactNative组件LoginMana ...

  4. 读取配置文件,appsettings.json和注入ICO

    https://www.cnblogs.com/knowledgesea/p/7079880.html 引入Nuget的两个类库 Microsoft.Extensions.Configuration ...

  5. Cannot create PoolableConnectionFactory (Could not create connection to database server.)

    是由于mysql驱动版本太低导致. 本人 jdk版本是1.8.0_211,mysql版本是8.0.17,mysql-connector-java版本是5.1.39, 后来把mysql-connecto ...

  6. Django后台管理系统的使用

    目录 django后台管理系统的使用 检查配置文件 检查根urls.py文件 启动项目,浏览器输入ip端口/admin 如: 127.0.0.1/8000/admin 回车 注册后台管理系统超级管理 ...

  7. Java基础系列1:深入理解Java数据类型

    Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个 ...

  8. [HNOI2008]GT考试(kmp,dp,矩阵乘法)

    [HNOI2008]GT考试(luogu) Description 求有多少个n位的数字串不包含m位的字符串(范围 n <= 1e9 n<=1e9, m <= 20m<=20) ...

  9. laravel 队列服务使用总结

    laravel 队列服务使用总结 使用步骤 配置队列驱动 //env文件,有的版本是QUEUE_DRIVER QUEUE_CONNECTION=database 迁移队列需要的数据表,在数据库中生成j ...

  10. Django设置session过期时间

    settings.py #session 设置 SESSION_COOKIE_AGE = 60 * 10 # 设置过期时间10分钟,默认为两周 SESSION_SAVE_EVERY_REQUEST = ...