中文文档地址:Requests: 让 HTTP 服务人类 — Requests 2.18.1 文档
英文文档地址:https://2.python-requests.org/en/master/api/
---------------------------
功能特性
Requests 完全满足今日 web 的需求。
- Keep-Alive & 连接池
- 国际化域名和 URL
- 带持久 Cookie 的会话
- 浏览器式的 SSL 认证
- 自动内容解码
- 基本/摘要式的身份认证
- 优雅的 key/value Cookie
- 自动解压
- Unicode 响应体
- HTTP(S) 代理支持
- 文件分块上传
- 流下载
- 连接超时
- 分块请求
- 支持
.netrc
一切动力都来自于根植在 Requests 内部的 urllib3。
-------------------------
开发哲学
Requests 是以 PEP 20 的箴言为中心开发的
- Beautiful is better than ugly.(美丽优于丑陋)
- Explicit is better than implicit.(直白优于含蓄)
- Simple is better than complex.(简单优于复杂)
- Complex is better than complicated.(复杂优于繁琐)
- Readability counts.(可读性很重要)
对于 Requests 所有的贡献都应牢记这些重要的准则。
-------------
快速上手
用法 | ||
导入 Requests 模块 | import requests |
|
发送请求 |
>>> r = requests.get('https://api.github.com/events') >>> r = requests.post('http://httpbin.org/post', data = {'key':'value'}) >>> r = requests.put('http://httpbin.org/put', data = {'key':'value'}) >>> r = requests.delete('http://httpbin.org/delete') >>> r = requests.head('http://httpbin.org/get') >>> r = requests.options('http://httpbin.org/get') |
|
传递 URL 参数 |
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.get("http://httpbin.org/get", params=payload) >>> print(r.url) http://httpbin.org/get?key2=value2&key1=value1 |
|
>>> payload = {'key1': 'value1', 'key2': ['value2', 'value3']} >>> r = requests.get('http://httpbin.org/get', params=payload) >>> print(r.url) http://httpbin.org/get?key1=value1&key2=value2&key2=value3 |
||
读取服务器响应的内容 | >>> import requests >>> r = requests.get('https://api.github.com/events') >>> r.text u'[{"repository":{"open_issues":0,"url":"https://github.com/... Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。 |
|
改变响应编码 r.encoding = 'ISO-8859-1' |
||
二进制响应内容 | >>> r.content b'[{"repository":{"open_issues":0,"url":"https://github.com/... |