Requests
Requests
Requests是Python的HTTP库,用于发起HTTP请求
安装
pip install requests
使用
import requests
发起请求
GET 请求
requests.get(url, params=None, **kwargs)
参数
- url – 请求路径
- params – (可选) 发起请求所携带的参数
- **kwargs
r = requests.get(
# 请求路径
'https://api.com/get',
# 携带的参数
params={'key': 'value'},
)
POST 请求
requests.post(url, data=None, json=None, **kwargs)
参数
- url – 请求路径
- data – (可选) 发起请求所携带的参数
- json – (可选) 请求中要发送的json数据
- **kwargs
r = requests.post(
'https://api.com/post',
# 发送form表单格式
data={'key': 'value'},
# 发送JSON格式1
data=json.dumps({'key': 'value'},
# 发送JSON格式2
json={'key': 'value'},
# 发送multipart文件格式
files={'file': open('文件名.xls', 'rb')}
)
PUT 请求
requests.put(url, params=None, **kwargs)
参数
- url – 请求路径
- data – (可选) 发起请求所携带的参数
- json – (可选) 请求中要发送的json数据
- **kwargs
r = requests.put('https://api.com/put', data={'key': 'value'})
DELETE 请求
requests.delete(url, **kwargs)
参数
- url – 请求路径
- **kwargs
r = requests.delete('https://api.com/delete')
HEAD 请求
requests.head(url, **kwargs)
参数
- url – 请求路径
- **kwargs
r = requests.head('https://api.com/get')
OPTIONS 请求
requests.options(url, **kwargs)
参数
- url – 请求路径
- **kwargs
r = requests.options('https://api.com/get')
可选参数
设置请求头
requests.XXX('url', headers={'key': 'value'})
设置传递的Cookies
requests.XXX('url', cookies={'key': 'value'})
设置等待时间
requests.XXX('url', timeout=1)
设置是否允许重定向
requests.XXX('url', allow_redirects=True)
设置SSL证书路径
requests.XXX('url', verify='/path/to/certfile')
获取响应
r = requests.post(url,data)
# 获取响应URL
r.url
# 获取响应文本
r.text
# 获取响应JSON
r.json()
# 获取响应编码格式
r.encoding
# 获取二进制响应值
r.content
# 获取响应状态码
r.status_code
# 获取响应头
r.headers
# 获取响应的所有Cookies
r.cookies
# 获取响应的单个Cookies
r.cookies['cookie名称']
# 获取响应历史
r.history
Session会话
在你连续发起多个请求时,Session会帮你保留一些参数,例如响应的cookies,而且用Session发起多个请求,底层的TCP连接会被重用,可以节省系统资源,显著提高性能。
使用方法
# 创建Session
s = requests.Session()
# 使用Session发起请求,并把响应存到变量r1中
r1 = s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
# 使用Session发起第二个请求,并把响应存到变量r2中
r2 = s.get('https://httpbin.org/cookies/set/sessioncookie2/1234567890')
# 打印r1响应的text
print(r1.text)
# 打印r2响应的text
print(r2.text)
# 打印Session保存下来的cookies
print(s.cookies)
# '{"cookies": {"sessioncookie": "123456789", "sessioncookie2":"1234567890"}}'
Session可以修改默认请求头或其它参数
s = requests.Session()
# 设置认证
s.auth = ('用户名', '密码')
# 更新请求头
s.headers.update({'x-test': 'true'})
# 修改SSL证书路径
s.verify = '/path/to/certfile'
s.get('https://httpbin.org/headers', headers={'x-test2': 'true'})
Sessions参数
auth
设置默认认证
cert
设置默认SLL证书
close()
关闭Sessions
cookies
配置cookies
get_adapter(url)
给URL添加适配器
get_redirect_target(resp)
接收一个响应,返回一个重定向URI或空
hooks
事件处理钩子函数
max_redirects
允许的最大重定向数,如果超过限制,抛出TooManyRedirects异常,默认为30
merge_environment_settings(url, proxies, stream, verify, cert)
检查环境并将其设置合并
mount(prefix, adapter)
注册一个连接适配器到一个前缀
prepare_request(request)
构建PreparedRequest并返回
proxies
设置代理,将在每个请求中使用
rebuild_auth(prepared_request, response)
重定向时重建认证
rebuild_method(prepared_request, response)
重定向时修改请求方式
rebuild_proxies(prepared_request, proxies)
重定向时重建代理