Requests:让 HTTP 服务人类

简述

Requests 是 Python 中一个大名鼎鼎的 HTTP 库,优雅而简单。

Requests 的宣言(宗旨)是:

HTTP for Humans (让 HTTP 服务人类)

| 版权声明:一去、二三里,未经博主允许不得转载。

吉祥物?

Requests 官网 中,可以很容易的发现一只可爱的海龟:

这里写图片描述

应该是 Requests 的吉祥物(标志),就像 Linux 的企鹅一样。可惜,经过多方查找,无果!但这并不影响我们学习和使用它。

Requests 的优势

和 Requests 一样,很多也模块提供了相似的功能,例如:urllib、urllib2、httplib、httplib2,为什么 Requests 能够脱引而出呢?

正如 Requests 宣言所说 - HTTP for Humans。在 Python 的世界里,一切都应该简单。

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}

虽然 Python 标准库中的 urllib2 模块包含了平常我们使用的大多数 HTTP 功能,但是它的 API 使用起来并不自然,而且需要巨大的工作量,来完成最简单的任务。已经不适合现在的时代和互联网了,Requests 的诞生让我们有了更好的选择。

Requests 允许发送绿色的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3。

用户见证

既然 Requests 这么棒,那一定有众多的粉丝和拥护者了,没错,一起来看看吧!

NSA、Amazon、Google、Twilio、Runscope、Mozilla、Heroku、PayPal、NPR、Obama for America、Transifex、Native Instruments、Washington Post、Twitter、SoundCloud、Kippt、Readability、Sony、以及若干不愿公开身份的政府机构都在内部使用。

  • Armin Ronacher
    Requests 是一个完美的例子,它证明了通过恰到好处的抽象,API 可以写得多么优美。

  • Matt DeBoard
    我要想个办法,把 @kennethreitz 写的 Python requests 模块做成纹身。一字不漏。

  • Daniel Greenfeld
    感谢 @kennethreitz 的 Requests 库,刚刚用 10 行代码炸掉了 1200 行意大利面代码。今天真是爽呆了!

  • Kenny Meyers
    Python HTTP:疑惑与否,都去用 Requests 吧。简单优美,而且符合 Python 风格。

Requests 是有史以来下载最多的 Python 包之一,每月超过 700 万的下载,真是酷毙了!

功能特性

Requests 完全满足今日 Web 的需求。

  • 国际化域名和 URL
  • Keep-Alive & 连接池
  • 带持久 Cookie 的会话
  • 浏览器式的 SSL 认证
  • 基本/摘要式的身份认证
  • 优雅的 key/value Cookie
  • 自动解压
  • 自动内容解码
  • Unicode 响应体
  • 文件分块上传
  • 连接超时
  • 流下载
  • 支持 .netrc
  • 分块请求
  • 线程安全

Requests 支持 Python 2.6- 2.7 & 3.3-3.5,而且能在 PyPy 下完美运行。

中文文档

Requests 官方文档已经支持多种语言了,对我们来说,最关注的肯定是中文版,强烈推荐!

只需要进入“Chinese”链接即可。

这里写图片描述

更多参考

展开阅读全文
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值