安装/导入:
pip install requests
import requests
方法:
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
requests.get('http://httpbin.org/get')
传参:
cookies=cs
params:
header:请求头
requests.get(url, headers=headers)
data:发送表单
payload = {'key1': 'value1', 'key2': 'value2'}
payload = (('key1', 'value1'), ('key1', 'value2'))
r = requests.post("http://httpbin.org/post", data=payload)
files:文件
files = {'file': open('report.xls', 'rb')}
files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
r = requests.post(url, files=files)
重定向:
禁用 allow_redirects=False
启用:allow_redirects=True
timeout超时时间:
timeout=0.001 单位s
get传参
requests.get("http://httpbin.org/get?name=germey&age=22")
data = {
'name': 'germey',
'age': 22
}
response = requests.get("http://httpbin.org/get", params=data)
结果处理
检查返回状态
r.raise_for_status() 200时返回None,其他返回报错信息
r.status_code
r.status_code == requests.codes.ok >> True
返回内容获取
Response.content 数据转换为二进制,用于获取图片,音频等
Response.text:用于获取文本,网页源代码等
res.encoding = 'utf-8' 设置接受编码
获取响应头:r.headers
获取cokkieas:r.cookies['ts']
url信息:r.url
返回格式
response.json()
json.loads(response.text)
常用场景:
上传文件:
upload_files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=upload_files)
json数据
requests默认使用application/x-www-form-urlencoded对POST数据编码,需要传入json数据,可以直接
params = {'key': 'value'}
r = requests.post(url, json=params) # 内部自动序列化为JSON
图片
rom PIL import Image
from io import BytesIO
i = Image.open(BytesIO(r.content))