python requestsの概要
Pythonのrequestsは、HTTP通信用のライブラリです。GET、POST、PUT、DELETEなどのHTTPメソッドを使用して、Webサーバーと通信するための簡単なインターフェイスを提供します。
requestsの主な機能は、以下のとおりです。
- HTTPリクエストの送信
- レスポンスの受信
- レスポンスのデコード
- ヘッダーの設定
- 認証の設定
- プロキシの設定
- タイムアウトの設定
requestsは、WebスクレイピングやWeb APIの呼び出しなど、さまざまな用途に使用できます。
Python requestsは、pipコマンドを使用してインストールできます。
pip install requests
python requestsの使用方法
Python Requestsの基本的な使い方は、以下のとおりです。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# レスポンスの取得
text = response.text
# レスポンスのデコード
html = bs4.BeautifulSoup(text, "html.parser")
# タイトルの取得
title = html.find("title").text
print(title)
pythonのrequests get
Python Requestsのget()関数は、HTTP GETリクエストを送信するための関数です。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
get()関数の引数は、以下のとおりです。
- url: リクエストを送信するURL
- params: リクエストに渡すパラメータ
- headers: リクエストに渡すヘッダー
- **kwargs: その他のオプション
params引数には、辞書でパラメータを渡します。
# GETリクエストの送信
response = requests.get("https://www.google.co.jp/search", params={"q": "python"})
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
このコードは、Googleで「python」を検索した結果を取得し、そのテキストを表示します。
headers引数には、ヘッダーを辞書で渡します。
# GETリクエストの送信
response = requests.get("https://www.python.org/", headers={"User-Agent": "MyApp"})
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
**kwargs引数には、その他のオプションを渡します。
# GETリクエストの送信
response = requests.get("https://www.python.org/", timeout=10)
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
このコードは、タイムアウトを10秒に設定して、Pythonの公式ドキュメントのページを取得します。
pythonのrequestsのheader
Python Requestsのheaders引数を使用して、HTTPリクエストにヘッダーを設定することができます。
import requests
# User-Agentヘッダーを設定
headers = {"User-Agent": "MyApp"}
# GETリクエストの送信
response = requests.get("https://www.python.org/", headers=headers)
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
ヘッダーは、辞書で指定します。キーはヘッダー名、値はヘッダーの値です。
複数のヘッダーを設定する場合は、辞書に複数のキーと値を追加します。
# AcceptヘッダーとAccept-Encodingヘッダーを設定
headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding": "gzip, deflate"}
# GETリクエストの送信
response = requests.get("https://www.python.org/", headers=headers)
# レスポンスの取得
text = response.text
# レスポンスの表示
print(text)
ヘッダーの値は、文字列、整数、浮動小数点数、ブール値、リスト、辞書など、さまざまな型を指定できます。
pythonのrequestsのresponse
PythonのRequestsのresponseは、HTTPリクエストの応答を表すオブジェクトです。
responseオブジェクトには、以下の属性があります。
- status_code: HTTPステータスコード
- headers: HTTPヘッダー
- content: レスポンスボディ
- raw: バイナリレスポンス
- elapsed: 応答時間
- history: リクエストの履歴
responseオブジェクトの属性は、以下のようにしてアクセスできます。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# ステータスコード
print(response.status_code)
# 200
# ヘッダー
print(response.headers)
# {'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'max-age=86400', 'Content-Length': '7441', 'Date': 'Mon, 18 Sep 2023 15:14:18 GMT', 'Expires': 'Tue, 20 Sep 2023 15:14:18 GMT', 'Server': 'nginx', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-Powered-By': 'Python/3.10.4'}
# レスポンスボディ
print(response.content)
# HTMLの文字列
以下は、responseオブジェクトの例です。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# 属性の確認
print(response.status_code)
# 200
print(response.headers)
# {'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'max-age=86400', 'Content-Length': '7441', 'Date': 'Mon, 18 Sep 2023 15:14:18 GMT', 'Expires': 'Tue, 20 Sep 2023 15:14:18 GMT', 'Server': 'nginx', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-Powered-By': 'Python/3.10.4'}
print(response.content)
# HTMLの文字列
このコードは、Pythonの公式ドキュメントのページを取得し、そのステータスコード、ヘッダー、レスポンスボディを表示します。
responseオブジェクトは、HTTPリクエストの応答を処理するために使用できます。
たとえば、responseオブジェクトのcontent属性を使用して、レスポンスボディをテキストとして取得できます。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# レスポンスボディの取得
text = response.content
# レスポンスボディの表示
print(text)
このコードは、Pythonの公式ドキュメントのページのテキストを表示します。
また、responseオブジェクトのheaders属性を使用して、ヘッダーを辞書として取得できます。
import requests
# GETリクエストの送信
response = requests.get("https://www.python.org/")
# ヘッダーの取得
headers = response.headers
# ヘッダーの表示
for key, value in headers.items():
print(f"{key}: {value}")
このコードは、Pythonの公式ドキュメントのページのヘッダーを表示します。
responseオブジェクトは、HTTPリクエストの応答を処理するための便利なオブジェクトです。さまざまな属性を使用して、HTTPリクエストの応答に関する情報を取得したり、処理したりすることができます。
python requestsのresponseをjson形式で取得
PythonのrequestsのresponseをJSONで取得するには、responseオブジェクトのjson()メソッドを使用します。
json()メソッドは、レスポンスボディをJSON形式でデコードして、Pythonの辞書やリストに変換します。
import requests
# GETリクエストの送信
response = requests.get("https://api.example.com/v1/users/1")
# JSON形式でレスポンスボディを取得
data = response.json()
# 取得したデータを表示
print(data)
このコードは、例のAPIからユーザー情報を取得し、その情報をJSON形式で表示します。
responseオブジェクトのjson()メソッドは、レスポンスボディがJSON形式でない場合、エラーが発生します。
レスポンスボディがJSON形式でない場合、responseオブジェクトのcontent属性を使用して、レスポンスボディをテキストとして取得できます。その後、JSONモジュールを使用して、テキストをJSON形式に変換できます。
import requests
import json
# GETリクエストの送信
response = requests.get("https://api.example.com/v1/users/1")
# レスポンスボディの取得
text = response.content
# JSON形式に変換
data = json.loads(text)
# 取得したデータを表示
print(data)
このコードも、例のAPIからユーザー情報を取得し、その情報をJSON形式で表示します。