一、requests库简介

  requests库是一个简洁的能够简单地处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近正常URL访问过程。

  另外,request库支持非常丰富的链接访问功能,包括国际域名和URL获取、HTTP长连接和连接缓存、HTTP会话和Cookie保持、浏览器使用风格的SSL验证、基本的摘要验证、有效键值对Cookie记录、

自动解压缩、自动内容解码、文件分块上传、HTTP(s)代理功能、连接超时处理、数据流下载等。

二、request库的使用

1.request库中常用的网页请求函数

get(url[,timeout=n])        对应于HTTP的GET方式,获取网页最常用的方法,可以增加timeout=n参数,设定每次请求超时时间为n秒
    post(url,data={'key':'value'})     对应于HTTP的POST方式,其中字典用于传递客户数据
    delete(url)            对应于HTTP中的DELETE方式
    haed(url)              对应于HTTP中的HEAD方式
    options(url)             对应于HTTP中的OPTIONS方式
    put(url,data={'key':'value'})     对应于HTTP中的PUT方式,其中字典用于传递客户数据

get()是获取网页最常用的方法,在调用requests.get()函数后,返回网页内容会保存成为一个Response对象,其中get()函数的参数url链接必须采用HTTP或者HTTPS的方式访问。

如下:

python request怎么在请求体里添加变量 python里面的request函数怎么用_JSON

 

2.和浏览器交互过程一样,requests.get()代表请求过程,它返回的Response对象代表响应,返回内容作为一个对象更便于操作,下面介绍Response对象的属性:

status_code      HTTP请求的返回状态,整数200表示连接成功,404表示失败
    text            HTTP响应内容的字符串形式,即url对应的页面内容
    encoding        HTTP响应内容的编码方式
    content        HTTP响应内容的二进制形式

(1)status_code属性返回请求HTTP后的状态,在处理数据之前要先判断状态情况,如果请求未被响应,需要终止处理内容。text属性是请求的页面内容,以字符串形式展示。encoding属性非常重要,

它给出了返回页面内容的编码方式,可以通过对encoding属性值更改编码方式,以便于处理中文字符。content属性是页面内容的二进制形式。

如下获取文本:

python request怎么在请求体里添加变量 python里面的request函数怎么用_HTTP_02

 

 

如下改变编码类型:

python request怎么在请求体里添加变量 python里面的request函数怎么用_数据_03

 

(2)Response对象的方法:

    json          如果HTTP响应内容包括JSON格式数据,则该方法解析JSON数据

    raise_for_status       如果不是200,则产生异常

  json()方法能够在HTTP响应内容中解析存在的JSON数据,这将带来解析HTTP的便利。raise_for_status()方法能在非成功响应内容后产生异常,即只要返回的请求状态status_code不是200,

这个方法就会产生一个异常,用于try-except语句。使用异常处理语句可以避免设置一堆复杂的if语句,只需要在收到响应时调用这个方法,就可以避开状态200以外的各种意外情况。

  requests会产生几种异常。当遇到网络问题时,如DNS查询失败、拒绝连接等,requests会抛出ConnectionError异常;遇到HTTP响应无效时,requests则会抛出HTTPError异常;若请求url超时,则抛出Timeout异常;

若请求超过了设定的最大重向次数,则会抛出一个TooManyRedirects异常。

 一个获取一个网页内容的函数代码:

python request怎么在请求体里添加变量 python里面的request函数怎么用_JSON_04