Pythonエンジニアにお勧めなHTTPライブラリ「requests」


「requests」という、HTTPライブラリの紹介になります。

HTTPとは?
HTTPとは、サーバとクライアントがHTML等の情報を送受信するためのルール、約束になります。

HTTPのHTは、Hypertextという意味ですが、これはHTMLのことと考えるとわかりやすいです。(実際にはHTMLに限らないですが)
Transferは転送、などの意味を持ち、Protocolは、手順、手続き、といった意味を持つ単語です。
つまり、HTMLの転送手順、などのような意味になります。

他にも、
・SMTP(Simple Mail Transfer Protocol) — 簡易メール転送プロトコル
・FTP(File Transfer Protocol) — ファイル転送プロトコル
・POP(Post Office Protocol) — 電子メールの受信
等のプロトコルがあります。

ウェブブラウザとサーバがやっているのもこのHTTPでの通信で、意識しなくても皆さんは使っていることでしょう。

ウェブブラウザに限らず、プログラムからあるウェブページにアクセスしたい、という場合があります。
例えば、最近よく聞く「スクレイピング」「クローラー」というものは、実際にウェブブラウザを立ち上げず(立ち上げるケースもあります)、
プログラム上でサーバにリクエストを行い、レスポンスを受け取り、必要なデータだけを高速に抜きだす…といった作業をします。
また、Web APIという、ブラウザではなくプログラムからHTTPリクエストを送ることを前提にしたものもあります。

Pythonには標準ライブラリにurllib2*1がありましたが、少々使いづらいものでした。
requestsは「HTTP for Humans」という説明のとおり、非常に使いやすく、わかりやすいです。
最近のPython書籍を見ても、HTTPでのやり取りを扱う場合はrequestsを使ってるようです。

*1 Python3では、urllib2はurllib.request, urllib.errorに分割されました。

サンプルコード
グーグルのトップページへGETメソッドでリクエストを送りたい場合は、以下のようにします。

ステータスコードやレスポンスボディ等は、以下のように取得が可能です。

GETだけでなく、POST等他のメソッドも簡単に扱えます。

POSTで、データを送信したい場合は以下のようになります。

プロキシやユーザーエージェントの設定等も簡単です。

認証も非常に容易に行えます。


関連記事一覧

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

ホワイトペーパーの入手

ITブログ月間20万PV達成!自社オウンドメディアの運用ノウハウを無料公開しています。
 ダウンロード

記事カテゴリ記事カテゴリ

月別投稿記事

PAGE TOP