🎯 カスタマイズ可能で検出回避型のクラウドブラウザ。自社開発のChromiumを搭載し、ウェブクローラーAIエージェント向けに設計されています。👉今すぐ試す
ブログに戻ります

Python Requestsでユーザーエージェントを設定する方法:開発者のためのステップバイステップガイド

Michael Lee
Michael Lee

Expert Network Defense Engineer

22-Oct-2025

はじめに

Python RequestsでカスタムUser Agentを設定することは、HTTPリクエストがウェブサーバーによってどのように認識されるかを制御するために重要です。このガイドでは、User Agentを設定し管理するための明確な方法を説明します。これにより、開発者はブロックを避け、ブラウザを模倣し、ウェブデータを効果的に収集することができます。

主なポイント

  • User Agentの設定はサーバーの認識を制御します。
  • Python Requestsは柔軟なヘッダーのカスタマイズを可能にします。
  • 正しいUser Agentを使用することで、スクレイピングの成功率が向上します。
  • ScrapelessのようなツールはUser Agentの管理を簡素化します。

User Agentが重要な理由

結論: サーバーはClientのタイプを決定するためにUser Agentに依存します。
User Agentは、リクエストがブラウザ、ボット、またはモバイルデバイスからのものであるかをサーバーに伝えます。不正確なUser Agentは、ブロックを引き起こしたり、簡略化されたコンテンツを返したりする可能性があります。

事例:

  • Googleはしばしば、ボットとブラウザに異なるHTMLを提供します。
  • 一部のeコマースサイトは、認識されたUser Agentがないリクエストをブロックします。

参考: Mozilla Developer Network (nofollow)

Python RequestsでUser Agentを設定するための基本的な方法

結論: カスタムヘッダーはもっともシンプルな方法です。
Python Requestsでは、headers辞書を渡すことができます:

python Copy
import requests

url = 'https://example.com'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
response = requests.get(url, headers=headers)
print(response.status_code)

ポイント

  • User-Agentは常に文字列として指定してください。
  • スクレイピングのために空またはデフォルトのヘッダーを避けましょう。

Persistent User Agentsのためのセッションの使用

結論: セッションはリクエスト間でヘッダーを維持します。

python Copy
import requests

session = requests.Session()
session.headers.update({'User-Agent': 'CustomBrowser/1.0'})
response1 = session.get('https://example.com/page1')
response2 = session.get('https://example.com/page2')

利点:

  • 自動的に同じUser Agentを維持します。
  • コードの繰り返しを減らします。

User Agentを回転させる

結論: 回転は検出とブロックを回避します。

python Copy
import random
import requests

user_agents = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
    'Mozilla/5.0 (X11; Linux x86_64)'
]

headers = {'User-Agent': random.choice(user_agents)}
response = requests.get('https://example.com', headers=headers)

比較の概要:

メソッド 利点 欠点
単一ヘッダー シンプルで迅速に設定可能 ステルス性が低い
セッションヘッダー 永続的でクリーンなコード やや冗長なコード
User Agentの回転 ブロックを回避し、ステルス より多くの管理が必要

参考: Scrapy Documentation (nofollow)

User Agentを設定する際の一般的な間違い

結論: 間違いはスクレイピングの成功を減少させます。

  • ヘッダーを完全に忘れる。
  • 時代遅れのブラウザ文字列をコピーする。
  • 高頻度リクエストに対して同じUser Agentを使用する。

例:

古いIE User Agentを使用した現代のサイトへのリクエストは、しばしば最小限のHTMLを返します。

User Agentsとプロキシの組み合わせ

結論: プロキシはUser Agentで匿名性を高めます。

  • 住宅用プロキシを使用して成功率を高めます。
  • 回転するUser Agentとプロキシの回転を組み合わせます。
python Copy
proxies = {
    'http': 'http://123.123.123.123:8080',
    'https': 'https://123.123.123.123:8080',
}
response = requests.get('https://example.com', headers=headers, proxies=proxies)

参考: Bright Data Proxy Guide (nofollow)

高度なUser Agent管理のためのScrapelessの使用

結論: ScrapelessはUser Agentとプロキシの処理を自動化します。

  • 事前設定された回転するUser Agentを提供します。
  • ブラウザフィンガープリンティングをサポートしています。
  • 手動設定のエラーを減少させます。

利点:

  • テストのための無料トライアルが利用可能です。
  • 成功率を確認するための統合分析があります。
  • 大規模なスクレイピングのための時間を節約します。

Scrapelessを無料で試す

ケーススタディ

  1. eコマーススクレイピング: User Agentを回転させることで403ブロックを回避。
  2. ニュースアグリゲーター: 一貫したHTMLのためにセッションヘッダーを維持。
  3. SEOモニタリング: Google SERPトラッキングのためにUser Agentの回転とプロキシを組み合わせる。

結論

User Agentを設定・管理することは、Pythonでの信頼性のあるウェブリクエストのために重要です。単一のヘッダー、セッション、回転はそれぞれ異なるニーズに応じています。大規模なプロジェクトには、Scrapelessのようなツールが自動化を簡素化し、User Agentとプロキシ管理を組み合わせて最適な結果を得ることができます。

今すぐScrapelessの無料トライアルを開始して、ウェブスクレイピングプロジェクトを効率化してください。

FAQ

Q1: 任意のブラウザUser Agentを使用できますか?
A1: はい、しかし最小限のコンテンツを避けるために、有効で更新されていることを確認してください。

Q2: ユーザーエージェントのローテーションは必要ですか?
A2: 検出を避けるために高頻度のスクレイピングには推奨されます。

Q3: Scrapelessはユーザーエージェントのローテーションを扱えますか?
A3: はい、ローテーションとプロキシ管理を自動化します。

Q4: 法的リスクはありますか?
A4: 常にサイトの利用規約に準拠してください。

Q5: プロキシを使ったセッションは使用できますか?
A5: はい、セッションとプロキシを組み合わせることで安定性が向上します。

関連記事

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ