フッターコンテンツにスキップ
PYTHONヘルプ

PythonでRequestsライブラリを使う:チュートリアル

ウェブ開発とデータ取得の多様な環境において、Pythonは優れた言語です。 そのシンプルさと強力なライブラリがHTTPリクエストの処理を理想的な選択にしています。 これらのライブラリの中で、PythonのRequestsモジュールは、ウェブサービスと対話するための多用途でユーザーフレンドリーなツールとして際立っています。

この記事では、HTTPリクエストの基本を探り、どのようにRequestsライブラリがPython開発者に効率的な処理を可能にするかを調査します。 また、HTTPリクエストをIronPDF for Pythonのようなライブラリと組み合わせて使うことで、PDFの生成と編集が簡単になります。

HTTPリクエストの理解

HTTP(ハイパーテキスト転送プロトコル)は、ワールドワイドウェブ上のデータ通信の基盤です。 それは、クライアント(ウェブブラウザ)とサーバー間でHTMLのようなハイパーテキストの転送を管理するプロトコルです。 HTTPはリクエストとレスポンスのプロトコルとして動作し、クライアントがサーバーにリクエストを送り、サーバーが要求されたリソースで応答します。

HTTPリクエストは通常、いくつかのコンポーネントで構成されます:

  1. HTTPメソッド: クライアントがHTTPリクエストを実行するために行いたいアクションを指定します。一般的なメソッドにはGET、POST、PUT、DELETEなどがあります。
  2. URL: 要求されているリソースを特定する統一リソースロケータです。
  3. リクエストヘッダー: 認証資格情報、コンテンツタイプなど、リクエストに送信される追加情報です。
  4. ボディ: POSTまたはPUTリクエストと共に送信されるデータです。

Requestsライブラリの紹介

PythonのRequestsライブラリは、HTTPリクエストを簡素化します。 さまざまな種類のリクエストを送信し、レスポンスをスムーズに処理するためのエレガントで直感的なAPIを提供します。

Requests Python (開発者向けの使い方): 図1 - RequestsライブラリのWebページに設置

基本的な使用例をいくつか見ていきますが、まずRequestsモジュールのインストールプロセスを見てみましょう。

インストール

Requestsライブラリを使用する前に、インストールされていることを確認してください。 pipを介してインストールできます:

pip install requests
pip install requests
SHELL

GETリクエストの作成

requests.get()メソッドを使用して、ここで指定されたURLへのGETリクエストを行います:

import requests

# Make a GET request to the URL
response = requests.get('https://api.example.com/data')

# Print the response text (content of the response)
print(response.text)
import requests

# Make a GET request to the URL
response = requests.get('https://api.example.com/data')

# Print the response text (content of the response)
print(response.text)
PYTHON

このコードは、指定されたURLhttps://api.example.com/dataにGETリクエストを送り、レスポンスボディを出力します。

POSTリクエストの作成

データを含むPOSTリクエストを送信するには、requests.post()メソッドを使用します:

import requests

# Data to send in the POST request
data = {'key': 'value'}

# Make a POST request with data
response = requests.post('https://api.example.com/post', data=data)

# Print the response in JSON format
print(response.json())
import requests

# Data to send in the POST request
data = {'key': 'value'}

# Make a POST request with data
response = requests.post('https://api.example.com/post', data=data)

# Print the response in JSON format
print(response.json())
PYTHON

ここでは、JSONデータを含むPOSTリクエストをhttps://api.example.com/postに送信し、JSONのレスポンスデータを出力しています。

レスポンスオブジェクトの処理

HTTPリクエストによって返されるレスポンスオブジェクトは、HTTPヘッダ、ステータスコード、コンテンツなど、レスポンスのさまざまな側面にアクセスするためのさまざまな属性とメソッドを提供します。例えば:

import requests

# Make a GET request
response = requests.get('https://api.example.com/data')

# Print the status code of the response
print(response.status_code)

# Print the response headers
print(response.headers)
import requests

# Make a GET request
response = requests.get('https://api.example.com/data')

# Print the status code of the response
print(response.status_code)

# Print the response headers
print(response.headers)
PYTHON

エラーハンドリング

HTTPリクエストを行う際には、エラーを穏やかに処理することが重要です。 Requestsライブラリは、接続エラーやタイムアウトなどの一般的なエラーに対する例外をスローすることでエラーハンドリングを簡素化します。 例えば:

import requests

try:
    # Make a GET request
    response = requests.get('https://api.example.com/data')

    # Raise an exception for HTTP errors
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    # Print the error message
    print(err)
import requests

try:
    # Make a GET request
    response = requests.get('https://api.example.com/data')

    # Raise an exception for HTTP errors
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    # Print the error message
    print(err)
PYTHON

SSL証明書の検証の無効化

requestsライブラリでは、リクエストのverifyパラメータをFalseに設定することでSSL証明書の検証を無効にできます。

import requests

# Make a GET request with SSL verification disabled
response = requests.get('https://api.example.com/data', verify=False)

# Process the response
print(response.text)
import requests

# Make a GET request with SSL verification disabled
response = requests.get('https://api.example.com/data', verify=False)

# Process the response
print(response.text)
PYTHON

クエリ文字列の追加

URLにクエリパラメータを含めることができ、paramsパラメータを使用してそれらを追加します。

import requests

# Define query parameters
params = {'key': 'value', 'param2': 'value2'}

# Make a GET request with query parameters
response = requests.get('https://api.example.com/data', params=params)

# Process the response
print(response.text)
import requests

# Define query parameters
params = {'key': 'value', 'param2': 'value2'}

# Make a GET request with query parameters
response = requests.get('https://api.example.com/data', params=params)

# Process the response
print(response.text)
PYTHON

この例では、paramsディクショナリにはクエリパラメータが含まれています。 GETリクエストを行う際に、これらのパラメータは自動的にURLに追加され、https://api.example.com/data?key=value&param2=value2のようなURLになります。

IronPDFとRequestsを統合してPDFを生成

実装に入る前に、IronPDFを簡単に理解しましょう。

IronPDF - PythonのPDFライブラリ

IronPDF for Pythonは、PDFドキュメントの生成、読み取り、編集、操作に特化した人気のあるPythonライブラリです。 プログラム可能に専門的なPDFを作成するための豊富な機能を提供します。

Requests Python (開発者向けの使い方): 図2 - IronPDFのWebページ

Requestsを介して取得したコンテンツを使用してIronPDFでPDFを生成するには、次の手順に従います:

ステップ1: IronPDFのインストール

まず、Python環境にIronPDFがインストールされていることを確認してください。 pipを介してインストールできます:

pip install ironpdf
pip install ironpdf
SHELL

ステップ2: Requestsでコンテンツを取得

Requestsライブラリを使用して、PDFに含めたいコンテンツを取得します。 例えば:

import requests

# Make a GET request to fetch data
response = requests.get('https://api.example.com/data')
data = response.text
import requests

# Make a GET request to fetch data
response = requests.get('https://api.example.com/data')
data = response.text
PYTHON

ステップ3: IronPDFでPDFを生成

コンテンツを取得したら、IronPDFを使用してPDFを生成します。 ここに基本的な例があります:

from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from the data received from requests
pdf = renderer.RenderHtmlAsPdf(data)

# Export to a file
pdf.SaveAs("output.pdf")
from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from the data received from requests
pdf = renderer.RenderHtmlAsPdf(data)

# Export to a file
pdf.SaveAs("output.pdf")
PYTHON

この例では、dataにはRequestsで取得したHTMLコンテンツが含まれています。 IronPDFのRenderHtmlAsPdf()メソッドは、このHTMLコンテンツをPDFドキュメントに変換します。 最後に、SaveAs()メソッドを使用してPDFがファイルに保存されます。

Requestsライブラリを使用することで、Pythonはウェブとのやり取りを簡単に提供し、開発者がHTTP通信の複雑さではなく、優れたアプリケーションの構築により焦点を当てることができます。

高度な使用法

IronPDFの拡張機能を使用して、PDF生成プロセスをさらに強化できます。PDFの設定、余白、向き、画像、CSS、JavaScriptなどをカスタマイズすることができます。 例えば:

# Set page margins
renderer.RenderingOptions.MarginTop = 40  # millimeters
renderer.RenderingOptions.MarginLeft = 20  # millimeters
renderer.RenderingOptions.MarginRight = 20  # millimeters
renderer.RenderingOptions.MarginBottom = 40  # millimeters

# Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
my_advanced_pdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\\site\\assets")
my_advanced_pdf.SaveAs("html-with-assets.pdf")
# Set page margins
renderer.RenderingOptions.MarginTop = 40  # millimeters
renderer.RenderingOptions.MarginLeft = 20  # millimeters
renderer.RenderingOptions.MarginRight = 20  # millimeters
renderer.RenderingOptions.MarginBottom = 40  # millimeters

# Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
my_advanced_pdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\\site\\assets")
my_advanced_pdf.SaveAs("html-with-assets.pdf")
PYTHON

ここでは、ページ余白を設定し、ベースディレクトリから画像を追加してからファイルに保存しています。

IronPDFの機能と能力に関する詳細情報は、ドキュメントページを訪れ、Pythonと統合するためのすぐに使えるコード例をチェックしてください。

結論

PythonのRequestsライブラリは、HTTPリクエストを行うための強力でシンプルなインターフェースを提供します。 APIからデータを取得する場合でも、ウェブサービスと対話する場合でも、ウェブページをスクレイピングする場合でも、Requestsは直感的なAPIと堅牢な機能によってHTTPリクエストプロセスを簡素化します。

PythonのIronPDFとRequestsを組み合わせることで、取得したコンテンツから動的にPDFドキュメントを生成する可能性が広がります。 この記事で説明した手順を追い、IronPDFとRequestsの高度な機能を探索することにより、Python開発者はPDF生成ワークフローを効率化し、特定の要件に合わせて高品質のドキュメントを作成できます。

Requests Python (開発者向けの使い方): 図3 - IronPDFのライセンスページ

IronPDFはビジネスに最適です。 $799から始めるIronPDFの無料トライアルをお試しください。返金保証付きで、ドキュメントの管理に安全な選択です。 今すぐIronPDFをダウンロードして、シームレスなPDF統合を体験してください!

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。