介绍:Requests is an elegant and simple HTTP library for Python, built for human beings.
官网文档:快速入门 — 请求 2.31.0 文档 (requests.readthedocs.io)
一、reqeusts的安装
pip install requests
二、基本用法
import requests
# get 请求
resp = requests.get("https://www.example.com/get")
# get 带 url 参数
payload = {'key1': 'value1', 'key2': 'value2'}
resp = requests.get('https://www.example.com/get', params=payload)
# post 请求
resp = requests.post('https://www.example.com/post', data={'key': 'value'})
# 通过 encoding 设置响应内容的编码
resp.encoding("utf-8")
# 响应状态码 status_code
print(resp.status_code)
# 响应内容 text
print(resp.text)
# 内置json解码器
print(resp.json())
# 对于非文本请求,您还可以以字节形式访问响应正文
from PIL import Image
from io import BytesIO
image = Image.open(BytesIO(resp.content))
# 请求状态码对比 requests.codes 中包含了大部分的请求状态码
r.status_code == requests.codes.ok
四、重定向、超时
# 禁用重定向
resp = requests.get("https://www.example.com/", allow_redirects=False)
# 连接超时:2秒,读超时:2秒。最大超时时间:4秒。
resp = requests.get("https://www.example.com/", timeout=2)
# 连接超时:2秒,读超时:3秒。最大超时时间:5秒。
resp = requests.get("https://www.example.com/", timeout=(2, 3))
# 其他请求方式同理
五、使用会话 Session
session = requests.Session()
session.get('https://www.example.com/login')
resp = session.get('https://www.example.com/index')
print(resp.text)
# 手动设置 cookie 两种方式
session.cookies = { ... }
r = session.get('https://www.example.com/index', cookies={'session': '---session---'})
# 获取cookies
print(session.cookies)
六、证书
详见官方文档
七、代理
resp = requests.get("https://www.example.com/", proxies={"https": "https://xxx.xxx.xxx.xxx:xxx"})
八、简单示例
# request(method, url, **kwargs)
url = 'https://xxx.com'
args = {
'proxies': {},
'timeout': (2, 3)
}
resp = request('get', url, args)