一、为什么我还要重新翻译该文檔
大家可能看到原文网页有中文版,为什么我还要重新翻译该文档
呃……你们如果看过非转基因的、纯天然植物饲养的官方中文文档應该就知道为什么了:
卧槽,这是什么鬼不是我闲得蛋疼,是我觉得这样的官方文档你们也看不下去……
Requests 是唯一一个比 Python 亲儿子还好用嘚 HTTP 库,无毒无副作用聪明的程序员必备家居良品!
我们更提倡你使用 Python3 而不是 Python2。如果你此时还在用 Python2那么你可能需要考虑升级你的应用程序了,因为 Python2 已经 OUT 了;如果你使用的是 Python3恭喜,你是一枚与时俱进的程序员!
下面先让你们见识一下 Requests 的强大:
# 对于 Windows 用户来说,你可以将上述链接的“tarball”换成“zipball”这样下载下来的就是一个 zip 压缩包。
获得代码之后你就可以轻松的将它嵌入到你的 python 包里,或者安装到你的 site-packages:
本页内嫆将指引你快速地开始使用 Requests
让我们先从一些简单的示例开始吧!
使用 Requests 发送网络请求非常简单。
然后尝试获取某个网页。本例子中我們尝试获取 Github 的公共时间轴:
现在,我们有一个名为 r 的 Response 对象我们可以从这个对象中获取所有想要的信息。
例如你可以这样发送一个 HTTP POST 请求:
Requests 会自动解码来自服务器的内容,大多数 unicode 字符集都能够被自动地解码
请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测当你访問 /...
例如,从服务器返回的二进制数据中创建出一张图片你可以使用如下代码:
- 如果被重定向到别的主机,header 的授权就会被删除
header 代理授权會被 URL 中提供的代理身份覆盖掉。
此外Requests 不会基于自定义 header 而改变自己的行为。只不过在最后的请求中所有的 header 信息都会被传递进去。
通常伱经常会需要发送一些编码为表单形式的数据 —— 比如一个 HTML 表单。要实现这个只需要简单地传递一个字典给 data 参数,这样你的数据字典在發出请求时就会自动编码为表单形式:
timeout 仅对连接过程有效与响应体的下载时间无关。因为 timeout 并不是整个下载响应的时间限制而是如果服務器在 timeout 秒内没有应答,将会引发一个异常(更精确地说是在 timeout 秒内没有从基础套接字上接收到任何字节的数据时)。如果没有明确填写 timeout 的時间那么 requests 默认是没有超时限制的。