の Python のリクエスト ライブラリ は、指定された URL に対して HTTP リクエストを行うために Python に不可欠な部分の 1 つです。 REST API であれ Web スクレイピングであれ、これらのテクノロジーをさらに進めるにはリクエストを学習する必要があります。 URI に対してリクエストを行うと、レスポンスが返されます。 Python リクエストには、リクエストとレスポンスの両方を管理するための機能が組み込まれています。
ループタイプのJava
このチュートリアルでは、 Python リクエスト ライブラリ 、作り方 GETリクエスト Python リクエスト、応答オブジェクトとメソッド、Python リクエストを使用した認証などを通じて。
目次
- Pythonリクエストモジュールとは何ですか?
- Pythonリクエストを通じてGETリクエストを行う方法
- HTTPリクエストメソッド
- 応答オブジェクト
- 対応方法
- Python リクエストを使用した認証
- SSL証明書の検証
- セッションオブジェクト
- 結論
Pythonリクエストモジュールとは何ですか?
- Requests は、Python を使用して HTTP/1.1 リクエストを送信できるようにする Apache2 ライセンスの HTTP ライブラリです。
- Web を操作するには、Python リクエストが必須です。 API にアクセスする場合でも、Facebook ページ全体をダウンロードする場合でも、その他の優れた機能を使用する場合でも、URL に対してリクエストを行う必要があります。
- リクエストが重要な役割を果たすのは、 REST API 、 そして ウェブスクレイピング 。
- リクエストと Web スクレイピングを使用してサンプル Python スクリプトをチェックアウトする – BeautifulSoup を使用した Python での Web スクレイピングの実装
インストール要求
インストールの要求は、使用しているオペレーティング システムの種類によって異なります。基本的なコマンドは、コマンド ターミナルを開いて実行することです。
pip install requests>
オペレーティング システムにリクエストをインストールする基本的な方法は、ベース ファイルを取得してリクエストを手動でインストールすることです。リクエストは GitHub で積極的に開発されており、コードは常に利用可能です。コードの場合 – ここにアクセスしてください 。パブリック リポジトリのクローンを作成できます。
git clone git://github.com/psf/requests.git>
ソースのコピーを取得したら、それを独自の Python パッケージに埋め込んだり、サイト パッケージに簡単にインストールしたりできます。
cd requestspip install .>
さらにチェックアウトするには – Python でリクエストをインストールする方法 – Windows、Linux、Mac の場合
リクエストをする
Python リクエスト モジュールには、GET、POST、PUT、PATCH、または HEAD リクエストを使用して、指定された URI への Http リクエストを行うための組み込みメソッドがいくつかあります。 Http リクエストは、指定された URI からデータを取得するか、サーバーにデータをプッシュすることを目的としています。これは、クライアントとサーバー間の要求/応答プロトコルとして機能します。エンドポイントに対して GET リクエストを行う方法を示しましょう。 GET メソッドは、指定された URI を使用して指定されたサーバーから情報を取得するために使用されます。 GET メソッドは、エンコードされたユーザー情報をページ要求に追加して送信します。ページとエンコードされた情報は「?」文字で区切られます。例えば:
https://www.google.com/search?q=hello>
Pythonリクエストを通じてGETリクエストを行う方法
Python のリクエスト モジュールには、次の組み込みメソッドが用意されています。 得る() 指定された URI に対して GET リクエストを実行します。
構文
requests.get(url, params={key: value}, args)>
例 :
例として、github の API にリクエストを送信してみましょう。
Python3
import> requests> > # Making a GET request> r> => requests.get(> ' https://api.github.com/users/naveenkrnl '> )> > # check status code for response received> # success code - 200> print> (r)> > # print content of request> print> (r.content)> |
>
>
このファイルを request.py として保存し、ターミナルを実行して、
python request.py>
出力 –
詳細については、次のサイトをご覧ください – GET メソッド – Python リクエスト
HTTPリクエストメソッド
方法 | 説明 |
---|---|
得る | GET メソッドは、指定された URI を使用して指定されたサーバーから情報を取得するために使用されます。 |
役職 | POST リクエスト メソッドは、Web サーバーがリクエスト メッセージの本文に囲まれたデータを受け入れることをリクエストします (おそらくデータを保存するため)。 |
置く | PUT メソッドは、囲まれたエンティティが指定された URI の下に保存されることを要求します。 URI が既存のリソースを参照している場合は変更され、URI が既存のリソースを指していない場合は、サーバーはその URI を使用してリソースを作成できます。 |
消去 | DELETE メソッドは、指定されたリソースを削除します。 |
頭 | HEAD メソッドは、GET リクエストと同じ応答を要求しますが、応答本文はありません。 |
パッチ | これは機能の変更に使用されます。 PATCH リクエストには、リソース全体ではなく、リソースへの変更のみが含まれる必要があります。 |
応答オブジェクト
URI に対してリクエストを行うと、レスポンスが返されます。 Python のこの Response オブジェクトは、requests.method() によって返され、メソッドは get、post、put などになります。Response は、データの正規化やコードの理想的な部分の作成を支援する多くの関数と属性を備えた強力なオブジェクトです。例えば、 応答.ステータスコード ヘッダー自体からステータス コードを返し、リクエストが正常に処理されたかどうかを確認できます。応答オブジェクトは、多くの機能、メソッド、機能を暗示するために使用できます。
例 :
Python3
スイッチJava
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://api.github.com/ '> )> # print request object> print> (response.url)> # print status code> print> (response.status_code)> |
>
>
このファイルを request.py として保存し、以下のコマンドを使用して実行します。
Python request.py>
ステータス コード 200 は、リクエストが正常に行われたことを示します。
対応方法
方法 | 説明 |
---|---|
応答ヘッダー | response.headers は、応答ヘッダーの辞書を返します。 |
応答.エンコーディング | response.encoding は、response.content をデコードするために使用されるエンコーディングを返します。 |
応答.経過 | response.elapsed は、リクエストの送信からレスポンスの到着までの経過時間を示す timedelta オブジェクトを返します。 |
応答.close() | response.close() はサーバーへの接続を閉じます。 |
応答.コンテンツ | response.content は、応答の内容をバイト単位で返します。 |
応答.Cookie | response.cookies は、サーバーから返された Cookie を含む CookieJar オブジェクトを返します。 |
応答.履歴 | response.history は、リクエスト (URL) の履歴を保持する応答オブジェクトのリストを返します。 |
応答.is_permanent_redirect | response.is_permanent_redirect は、応答が永続的にリダイレクトされた URL である場合は True を返し、それ以外の場合は False を返します。 |
応答.is_redirect | response.is_redirect は、応答がリダイレクトされた場合は True を返し、それ以外の場合は False を返します。 |
応答.iter_content() | response.iter_content() は、response.content を反復処理します。 |
応答.json() | response.json() は結果の JSON オブジェクトを返します (結果が JSON 形式で書かれている場合は、そうでない場合はエラーが発生します)。 |
応答.url | response.url は応答の URL を返します。 |
応答.テキスト | response.text は、応答の内容を Unicode で返します。 |
応答.ステータスコード | response.status_code はステータスを示す数値を返します (200 は OK、404 は見つかりません)。 |
応答.要求 | response.request は、この応答を要求した要求オブジェクトを返します。 |
応答.理由 | response.reason はステータス コードに対応するテキストを返します。 |
応答.raise_for_status() | プロセス中にエラーが発生した場合、response.raise_for_status() は HTTPError オブジェクトを返します。 |
応答。OK | status_code が 200 未満の場合、response.ok は True を返し、それ以外の場合は False を返します。 |
応答.リンク | response.links はヘッダー リンクを返します。 |
Python リクエストを使用した認証
認証とは、特定のリソースにアクセスするためのアクセス許可をユーザーに与えることを指します。誰もがすべての URL からデータにアクセスできるわけではないため、主に認証が必要になります。この認証を実現するには、通常、Authorization ヘッダーまたはサーバーによって定義されたカスタム ヘッダーを通じて認証データを提供します。
例 -
Python3
# import requests module> import> requests> from> requests.auth> import> HTTPBasicAuth> # Making a get request> response> => requests.get(> ' https://api.github.com / user, '> ,> > auth> => HTTPBasicAuth(> 'user'> ,> 'pass'> ))> # print request object> print> (response)> |
ウリとは何ですか
>
>
user と pass を自分のユーザー名とパスワードに置き換えます。リクエストを認証してレスポンス 200 を返すか、そうでない場合はエラー 403 を返します。
詳細については、こちらをご覧ください – Pythonリクエストを使用した認証
SSL証明書の検証
リクエストは、Web ブラウザと同様に、HTTPS リクエストの SSL 証明書を検証します。 SSL 証明書は、暗号化キーを組織の詳細にデジタル的にバインドする小さなデータ ファイルです。多くの場合、SSL 証明書を備えた Web サイトは安全な Web サイトと呼ばれます。デフォルトでは、SSL 検証が有効になっており、証明書を検証できない場合、リクエストは SSLError をスローします。
SSL証明書検証を無効にする
Python リクエストを使用して、無効な SSL 証明書を使用して Web サイトにアクセスしてみます。
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
出力:-
この Web サイトには SSL が設定されていないため、このエラーが発生します。 Python リクエストのみを介して検証のために証明書へのリンクを渡すこともできます。
文字列から文字へのJava
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://github.com '> , verify> => '/path/to/certfile'> )> # print request object> print> (response)> |
>
>
これは、指定されたパスが github.com の SSL 証明書として正しい場合に機能します。
さらに訪問するには- SSL 証明書の検証 – Python リクエスト
セッションオブジェクト
セッション オブジェクトを使用すると、リクエスト間で特定のパラメータを永続化できます。また、Session インスタンスから行われたすべてのリクエストにわたって Cookie を保持し、urllib3 の接続プーリングを使用します。したがって、同じホストに対して複数のリクエストが行われる場合、基礎となる TCP 接続が再利用され、パフォーマンスが大幅に向上する可能性があります。リクエスト時のすべてのメソッドのセッション オブジェクト。
セッションオブジェクトの使用
Cookie を URL に設定し、再度リクエストを発行して Cookie が設定されているかどうかを確認することによって、セッション オブジェクトの使用方法を説明します。
Python3
ワードラップCSS
# import requests module> import> requests> > # create a session object> s> => requests.Session()> > # make a get request> s.get(> ' https://httpbin.org/cookies/set/sessioncookie/123456789 '> )> > # again make a get request> r> => s.get(> ' https://httpbin.org/cookies '> )> > # check if cookie is still set> print> (r.text)> |
>
>
出力:
詳細については、次のサイトをご覧ください – セッション オブジェクト – Python リクエスト
結論
Python Request Library は、HTTP リクエストを作成し、Web API と対話するための強力なツールです。このチュートリアルでは、GET リクエストと POST リクエストの送信、パラメータとヘッダーの処理、応答データの管理の基本について説明しました。このライブラリのシンプルさと直感的な設計により、初心者と経験豊富な開発者の両方がアクセスできます。