外观
requests
requests 是 PyPI 上最热门的第三方库,尽管它并不是最强大的 HTTP 请求库,但是它的确使用起来更加方便。
安装和引入
pip install requests
import requests
使用
一次简单的 HTTP 请求
import requests as rq
r = rq.get('https://httpbin.org/get')
print(r) # <Response [200]>
获取请求和响应信息
import requests as rq
r = rq.get('https://httpbin.org/get')
print(r.request.headers) # 发送请求时的头(dict)
print(r.request.method) # 请求方法(str)
print(r.request.url) # 请求url(str)
print(r.request.body) # 请求body(str|None)
print(r.status_code) # 响应状态码(int)
print(r.content) # 响应内容原始二进制数据(byte)
print(r.text) # 响应文本(str)
print(r.json()) # 响应json数据(dict)
print(r.headers) # 响应头(dict)
print(r.cookies) # 响应中设置的cookie(可转换为dict)
print(r.url) # 如果请求过程中遇到了重定向,用此获取重定向后的url(str)
print(r.history) # 如果请求过程中遇到了重定向,用此获取重定向的历史(list)
print(r.encoding) # 响应的编码(str)
不同的请求方法
import requests as rq
r1 = rq.get('https://httpbin.org/get')
r2 = rq.post('https://httpbin.org/post', data={'key': 'value'})
r3 = rq.put('https://httpbin.org/put', data={'key': 'value'})
r4 = rq.delete('https://httpbin.org/delete')
r5 = rq.head('https://httpbin.org/get')
r6 = rq.options('https://httpbin.org/get')
r7 = rq.patch('https://httpbin.org/patch', data={'key': 'value'})
传递请求参数、正文、头和 Cookie
此处我们以 POST 请求为例:
import requests as rq
r = rq.post(
'https://httpbin.org/post',
data={'key': 'value'},
params={'a': 'b'},
headers={'x': 'y'},
cookies={'m': 'n'},
)
print(r.text)
输出:
{
"args": {
"a": "b"
},
"data": "",
"files": {},
"form": {
"key": "value"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "9",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "m=n",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.28.1",
"X": "y",
"X-Amzn-Trace-Id": "Root=1-62ee47db-0da8967311ed1bde2a87f6ad"
},
"json": null,
"origin": "117.136.93.144",
"url": "https://httpbin.org/post?a=b"
}
传递 JSON 格式的请求正文:
import json
import requests as rq
r = rq.post(
'https://httpbin.org/post',
data=json.dumps({'key': 'value'}),
headers={'Content-Type': 'application/json'},
)
print(r.text)
上传文件
import requests as rq
r = rq.post(
'https://httpbin.org/anything',
files={'file': open('QAHCC.png', 'rb')},
)
下载并保存文件
import requests as rq
r = rq.get('https://httpbin.org/image/png')
with open('image.png', 'wb') as f:
f.write(r.content)
版权所有
版权归属:异想之旅