Pythonリクエスト:あなたが知る必要があるすべて



このブログでは、Pythonリクエストモジュールについて詳しく説明します。 GETおよびPOSTリクエスト、セッションオブジェクト、Cookie、ヘッダーについて理解します。

Pythonは、毎日約40万回のダウンロードを要求しています。この数は、これの人気について理解するのに十分明白です 。近年、Pythonプログラミング言語は多くの開発者にとって最も望ましいプログラミング言語になっています。リクエストのような概念とライブラリは、開発者が他のプログラミング言語からPythonに移行する多くの理由の1つです。このブログでは、次のトピックについて説明します。

Pythonリクエストとは何ですか?

Pythonリクエストは、Kenneth Reitzによって作成され、apache2.0でライセンスされています。公式ドキュメントページに記載されているように、これは人間に優しいHTTPライブラリです。使い方は簡単で、基本的にあらゆる種類のHTTPリクエストを作成するために使用されます。以下は、リクエストに付属するいくつかの高度な機能です。
  1. キープアライブと接続プール
  2. 国際ドメインとURL
  3. Cookieの永続性を備えたセッション
  4. ブラウザスタイルのSSL検証
  5. 自動コンテンツデコード
  6. 基本/ダイジェスト認証
  7. エレガントなキー/値Cookie
  8. 自動減圧
  9. Unicode応答本文
  10. HTTPプロキシのサポート
  11. マルチパートファイルのアップロード
  12. ストリーミングダウンロード
  13. 接続タイムアウト
  14. チャンクリクエスト
これらはすべてPythonリクエストライブラリの高度な機能です。そもそもなぜPythonリクエストを使用するのかを理解してみましょう。

Pythonリクエストを使用する理由

なぜPythonリクエストを使用するのですか?理由は非常に単純です。 Pythonリクエストを使用している間、手動でクエリをURLに追加したり、投稿データをフォームエンコードしたりする必要はありません。あらゆる種類のhttpリクエストを行うときに、作業が簡単になります。Pythonリクエストと、Pythonでそれらを使用する理由を理解したところで、プロジェクトまたはシステムにリクエストをインストールする方法を理解してみましょう。

Pythonリクエストをインストールするにはどうすればいいですか?

取り付け部分もとても簡単です。システムにpipenvセットアップがインストールされている場合は、ターミナルで次のコマンドを実行するだけです。

$ pipインストールリクエスト

これにより、リクエストライブラリがシステムにインストールされます。リクエストをインストールする方法がもう1つあります。 pycharmを使用している場合は、設定でプロジェクトインタープリターにリクエストを追加できます。これは、プロジェクトにライブラリをインストールする場合のターミナルと同じ目的を果たします。インストールが完了したので、Pythonでgetおよびpostリクエストを作成する方法を理解してみましょう。

Get&Postリクエストを行う方法は?

Getリクエストは、基本的にサーバーからのデータをリクエストするために使用されます。以下は、getリクエストを作成するための構文です。
インポートリクエストres = requests.get( 'url')#resはここでの応答オブジェクトです。
ポストリクエストは、処理するデータをサーバーに送信するために使用されます。以下は、POSTリクエストを行うための構文です。
インポートリクエストペイロード= {'key1': 'value1'} res = requests.post( 'url'、data =ペイロード)
getリクエストとpostリクエストを作成する方法がわかったので、getリクエストを使用してパラメータをURLに渡す方法を見てみましょう。

URLでパラメータを渡す

URLでパラメーターを渡すのは、getリクエストを作成するのと同じくらい簡単です。以下は、パラメーターをurlに渡す例です。
importrequestsペイロード= {'key1': 'value1'、 'key2': 'value2'} res = requests.get( 'url'、params =ペイロード)print(res.url)#これは、パラメータを含むURLを出力しますgetリクエストを通過しました。

ステータスコード

ステータスコードも確認できます。ステータスコードを確認するコードは次のとおりです。





インポートリクエストres = requests.get( 'url')print(res.status_code())
コードが200を返す場合は、エラーがなく、リクエストがすべて正常であることを意味します。不正なリクエストを行うと、コードは404や505のようなコードを返し、httpエラーが発生します。

応答内容

サーバーの応答の内容を読み取ることもできます。ライブラリは、サーバーからのコンテンツを自動的にデコードします。
インポートリクエストres = requests.get( 'url')print(res.content)

Requestsにはjsonデコーダーも組み込まれています。

リクエストのインポートres = requests.get( 'url')print(res.json())#これはjson形式で応答を取得します

マルチパートファイルのアップロード

リクエストを使用してマルチパートファイルをアップロードするのは非常に簡単です。
インポートリクエストファイル= {'ファイル':open( 'ファイル名'、 'rb')} res =リクエスト.post( 'url'、ファイル=ファイル)print(res.text)
複数のファイルを送信する場合は、filesパラメーターで複数のファイルを指定します。

クッキーとヘッダー

応答オブジェクトを使用して、サーバーの応答ヘッダーとCookieを表示できます。以下は、サーバーのヘッダーを表示するためのコードです。
インポートリクエストres = requests.get( 'url')print(res.headers)
カスタムヘッダーをURLに渡すこともできます。コードを見てみましょう。
インポートリクエストheaders = {'key1': 'value1'} res = requests.get( 'url'、headers = headers)print(res.headers)
リクエストは、カスタムヘッダーに基づいてその動作を変更しません。それらは単に最終リクエストに渡されます。 クッキー 応答オブジェクトを使用して表示することもできます。
リクエストのインポート#独自のCookieを渡すには、Cookieパラメータを使用できますcookies = dict(cookies = 'working')res = requests.get( 'url'、cookies = cookies)print(res.text)

CookieはRequestCookieJarで返されます。これは辞書のように機能しますが、複数のドメインまたはパスでの使用に適した、より完全なインターフェイスも提供します。



セッションオブジェクト

セッションオブジェクトを使用すると、リクエスト間で特定のパラメータを永続化できます。
  • セッションインスタンスから行われたすべてのリクエストにわたってCookieを保持します
  • urllib3接続プールを使用する
  • パフォーマンスが大幅に向上
  • セッションオブジェクトには、メインリクエストAPIのすべてのメソッドがあります
以下は、リクエスト間でいくつかのCookieを永続化するためのコードです。
s = requests.session()s.get( 'url')res = s.get( 'url')print(res.text)

エラーと例外

以下は、Pythonリクエストで発生するエラーと例外です。
  • ネットワークに問題が発生した場合、リクエストによってConnectionError例外が発生します。
  • Response.raise_for_status()は、失敗したステータスコードがある場合にHTTPエラーを発生させます。
  • タイムアウトがあると、タイムアウト例外が発生します
  • リクエストが設定されたリダイレクトの最大数を超えると、TooManyRedirects例外が発生します。
このブログでは、さまざまな高度な機能を備えたpythonrequestsモジュールについて説明しました。 Pythonのリクエストライブラリにあるレスポンスの内容やその他の概念を使用して、インストールとgetおよびpostリクエストの作成について説明しました。 Python Requestsモジュールは、のすぐに使える多くの優れた機能の1つです。 Pythonプログラミング言語 。に登録することで学習を開始できます Pythonプログラミング言語の可能性を発見してください。 何か質問がありますか?コメントセクションでそれらについて言及してください。折り返しご連絡いたします。