http.clientモジュールを使用してPythonでHTTPリクエストの応答(ステータス)コードを取得してみます。
HTTPリクエストの応答コードというのは、サーバーが要求されたページを正常に提供できたかどうかをコードで示すものです。正常に提供した場合は200と返します。サーバーエラーの場合は、500と返します。クライアントエラーの場合は400と返します。ページが見つかりませんというエラーは404エラーと返します。応答(ステータス)コードに関しては、「HTTP レスポンスステータスコード – HTTP | MDN」が参考になります。
http.clientモジュールは、Pythonの標準ライブラリなので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■http.clientモジュールを使用してHTTPリクエストの応答コードを取得する
では、早速http.clientモジュールを使用してHTTPリクエストの応答コードを取得するスクリプトを書いてみます。
■コード
import http.client h = http.client.HTTPConnection("laboratory.kazuuu.net") #GETリクエストを実行。Webページから情報取得 h.request("GET","/") #ホームページにあるすべてのデータを取得 data= h.getresponse() #サーバーによって返される応答を出力 print(data.code)
インポートでhttp.clientモジュールを呼び出して、hという変数を作成し、http.client.HTTPConnection()の()に、HTTPリクエストの応答コードを取得したいURLを記述します。今回は当サイト(laboratory.kazuuu.net)のHTTPリクエストの応答コードを取得してみます。
hという変数で、GETリクエストを実行します。HTTP通信で、サーバ(Webページ)から情報を取得してきます。
取得してきた情報をdataという変数に入れて、data.codeで、こちらが行った情報を取得するという要求に対してサーバーによって返される応答をprint関数で出力します。
■実行
今回書いたスクリプトを「httprequest_responsecode.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、「301」と表示され、HTTPリクエストの応答コードを取得することができました。
ちなみに「301」という応答コードは、301 Moved Permanentlyという意味です。URL が永遠に変更されています。なぜ変更されているかというと、当サイト(laboratory.kazuuu.net)は、独自SSL設定を行い、HTTP リクエストを HTTPS にリダイレクトさせているためです。これにより、「301」と表示されています。
コメント