Requests: 人間のためのHTTP

リリース v1.0.4. (Installation)

Requestsは、人が使いやすいように設計されていて、Pythonで書かれている Apache2 Licensed ベースのHTTPライブラリです。

Pythonの標準の urllib2 モジュールは、必要とされるほとんどのHTTPの機能を備えていますが、APIがまともに 使えません 。 様々なウェブ用途に合わせて作られていて、何回も修正されてきました。 簡単なことを行う(メソッドの上書きでさえ)のに、 かなり の量の作業が必要になります。

それは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, ...}

Requestsを使わずに同じ事をするためのコード を見て下さい。

Requestsは、ウェブサービスとシームレスに統合されたPythonのHTTP/1.1の処理の全てを受け持ちます。 URLに手動でクエリを入力したり、POSTデータをエンコードしたりする必要はありません。 Keep-aliveやHTTP接続のプーリングは、Requestsに urllib3 が組み込まれているので、100%自動で行われます。

推薦文

Amazon、Google、Twilio, Mozilla, Heroku, PayPal, NPR, Obama for America, Transifex, Native Instruments, The Washington Post, Twitter, SoundCloud、Kippt、Readability、Federal US Institutions は内部でRequestsを使っています。PyPIから1,500,000回以上インストールされました。

Armin Ronacher
Requestsは、どのようにして綺麗なAPIを正しく抽象化できるかの完璧な例です。
Matt DeBoard
@kennethreitz さんのPythonのRequestsモジュールのタトゥーを何とかして体に入れたい。以上。
Daniel Greenfeld
1200行のスパゲッティーコードのライブラリを数10行くらいのコードにしてくれた@kennethreitzのリクエストライブラリに感謝しています。 すばらしくなりました。
Kenny Meyers
PythonのHTTPの実装: 使うか迷ったときも、そうでない時も、Requestsを使います。綺麗な設計で、シンプルで、Pythonicだ。

サポートする機能

Requestsは、今日(こんにち)のウェブに欠かせない機能を持っています。

  • ドメインとURLの国際化
  • Keep-Aliveとコネクションプーリング
  • Cookieによるセッションの永続化
  • ブラウザのようなSSLによる接続
  • ベーシック/ダイジェスト認証
  • エレガントなキー/バリューによるCookie
  • 圧縮の自動的な展開
  • レスポンスの本文のユニコード化
  • マルチパートファイルのアップロード
  • コネクションのタイムアウト
  • .netrc のサポート
  • Python 2.6-3.3に対応
  • スレッドセーフ

コミュニティガイド

ドキュメントのこの章は、Requestsのエコシステムやコミュニティについて紹介します。

APIドキュメント

特定の関数やクラスやメソッドの情報を探している場合は、ドキュメントのこの章を見て下さい。

コントリビューター用のガイド

プロジェクトに貢献する場合は、ドキュメントのこの章を見て下さい。