Pythonのurllibで認証ヘッダーをつけてGETリクエストを送信する方法

Pythonのurllibを使用して認証ヘッダーを含めたGETリクエストを送信する方法を説明します。基本認証(Basic Authentication)を使用する場合の例を示します。

python
import urllib.request from urllib.error import HTTPError import base64 # 認証情報を設定 username = "your_username" password = "your_password" # 認証情報をBase64エンコード credentials = base64.b64encode(f"{username}:{password}".encode('utf-8')).decode('utf-8') # 認証ヘッダーを設定 auth_header = f"Basic {credentials}" # GETリクエストを送信するURLを指定 url = "https://example.com/api/resource" # リクエストを作成 request = urllib.request.Request(url) request.add_header("Authorization", auth_header) try: response = urllib.request.urlopen(request) data = response.read() print(data.decode('utf-8')) except HTTPError as e: print(f"HTTPエラーが発生しました: {e.code} - {e.reason}")

このコードでは、認証情報をBase64エンコードし、Basic認証ヘッダーを作成して、それをリクエストに追加しています。必要な認証情報はusernamepasswordに置き換えてください。

認証ヘッダーを追加することにより、サーバーはユーザー認証情報を受け入れ、GETリクエストに応答します。ただし、Basic認証はベース64エンコードされるため、セキュリティの観点からHTTPSなどの安全な通信チャネルを使用することをお勧めします。また、認証情報を平文でコードに含めることはセキュリティ上の懸念事項となる場合があります。