[Python]requestsでgetリクエスト(headers params status code)

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の利用など、様々な用途に利用することができます。