python之requests库

  1. requests库常用方法
  2. 获取响应内容
  3. 设置超时

一、Request库的常用方法

(一)requests.request(method,url,**kwargs)

method:常用的有getpostputdeleteheadoptions

url:请求的URL

**kwargs:13个控制访问的可选参数

可选参数如下:

参数名 支持类型 描述
params 字典、字节序列 以键值对的方式作为参数加入到URL中
data 字典、字节序列、文件 作为请求的Body内容
json JSON格式的数据 作为请求的Body内容
headers 字典 HTTP请求头,作为请求对象Header里的内容
cookies 字典或CookieJar 请求中的Cookie
files 字典,形式为{filename,fileobject} 提交传递文件
auth Auth句柄或(user,pass)元组
timeout 浮点数、元组 超时时间
allow_redirects True/False 重定向开关
proxies 字典 将协议映射为代理的URL
verify True/False 认证SSL证书开关
stream True/False 默认为True,为True会先下载响应头,为False会立即下载响应头和响应体
cert 字符串、元组 为字符串时是SSL客户端证书文件的路径,为元组时是一个(‘cert’,’key’)二元值对

(二)request.get(url,params=None,**kwargs)

请求获取URL的资源

(三)request.head(url,**kwargs)

请求获取响应的头部信息

(四)request.post(url,params=None,json=None,**kwargs)

请求向URL的资源后附加数据

(五)request.put(url,data=None,**kwargs)

请求向URL位置存储一个资源,覆盖原URL位置的资源

(六)request.patch(url,data=None,**kwargs)

请求局部更新URL位置的资源

(七)request.delete(rul,**kwargs)

请求删除URL位置的资源

二、响应

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 状态码
resp.status_code
# 响应头
resp.headers
# 请求链接
resp.url
# 获取网页编码
resp.encoding
# 获取cookie
resp.cookies
# 获取网页代码
resp.text
# 获取二进制数据
resp.content

如果HTTP请求返回了不成功的状态码,那么req.raise_for_status()会抛出一个HTTPError

三、超时

默认情况下,requests不会自动进行超时处理。连接超时指的是客户端到服务端的连接时,request会等待的秒数。读取超时指的是客户端等待服务器发送请求的时间。

1
2
3
4
5
6
# 第一种方式,单独设置超时时间,包括连接和读取
request.get('www.baidu.com',timeout=5)
# 第二种方式,分别作为连接和读取的超时时间
request.get('www.baidu.com',timeout=(1,3))
# 第三种方式,request永远等待
request.get('www.baidu.com',timeout=None)
------------- End -------------