Python requestsモジュールの基本的な使い方
Python requestsモジュールはHTTPリクエストを送信するためのモジュールです。requestsモジュールを使うことで、HTTPリクエストの送信やレスポンスの取得が簡単にできます。
GETリクエストとは
GETリクエストは、Webサーバーから情報を取得するためのリクエストです。GETリクエストでは、URLにパラメータを付けてリクエストを送信します。
Python requestsでheadersを取得する方法
HTTPリクエストには、ヘッダーと呼ばれる情報を付けることができます。ヘッダーには、ユーザーエージェントやリファラ、認証情報などが含まれます。
import requests url = 'https://www.example.com' # ヘッダーを指定してGETリクエストを送信する headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) # レスポンスのヘッダーを取得する print(response.headers)
上記の例では、ヘッダーにUser-Agentを指定してGETリクエストを送信しています。レスポンスのヘッダーはresponse.headersで取得できます。
Python requestsでparamsを指定する方法
GETリクエストでは、URLにパラメータを付けてリクエストを送信します。Python requestsでは、paramsを指定することで簡単にパラメータを付けることができます。
import requests url = 'https://www.example.com/search' # パラメータを指定してGETリクエストを送信する params = {'q': 'Python'} response = requests.get(url, params=params) # レスポンスのHTMLを取得する print(response.text)
上記の例では、URLに「?q=Python」というパラメータを付けてGETリクエストを送信しています。paramsにパラメータを指定し、requests.get()の引数に渡すことで簡単にパラメータを付けることができます。
Python requestsでstatus codeを取得する方法
HTTPレスポンスには、ステータスコードと呼ばれる情報が含まれます。ステータスコードは、リクエストの処理結果を示す3桁の数字で、200番台は成功、400番台はクライアントエラー、500番台はサーバーエラーを表します。
import requests url = 'https://www.example.com' # GETリクエストを送信する response = requests.get(url) # ステータスコードを取得する print(response.status_code)
上記の例では、GETリクエストを送信してレスポンスのステータスコードを取得しています。ステータスコードはresponse.status_codeで取得できます。
Python requestsを使った実践的な例
Python requestsを使うことで、WebスクレイピングやAPIの利用など、様々な用途に利用することができます。以下は、SNSの APIを利用して、特定のユーザーのタイムラインを取得する例です。
import requests import json # SNSのエンドポイントURL url = 'SNSのエンドポイントURL' # OAuth認証情報 consumer_key = 'XXXXXXXXXXXXXXXXXXXXXXXXX' consumer_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' access_token_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # パラメータを指定する params = {'screen_name': 'SNSJP', 'count': 100} # OAuth認証情報をヘッダーに設定する headers = {'Authorization': 'OAuth oauth_consumer_key="' + consumer_key + '", oauth_nonce="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", oauth_signature="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", oauth_signature_method="HMAC-SHA1", oauth_timestamp="XXXXXXXXXX", oauth_token="' + access_token + '", oauth_version="1.0"'} # GETリクエストを送信する response = requests.get(url, params=params, headers=headers) # レスポンスのJSONを取得する dataList = json.loads(response.text) # 記事を表示する for data in dataList: print(data['text'])
上記の例では、Twitter APIを利用して、TwitterJPのタイムラインを取得しています。OAuth認証情報をheadersに設定し、GETリクエストを送信しています。レスポンスのJSONをjson.loads()でパースして、ツイートのテキストを表示しています。
まとめ
Python requestsを使うことで、HTTPリクエストを簡単に送信することができます。ヘッダーやパラメータ、ステータスコードなどの情報を取得することもできます。WebスクレイピングやAPIの利用など、様々な用途に利用することができます。