Hrequests を使用して Web スクレイピングを行う方法

Lucas Mitchell
Automation Engineer
04-Sep-2024
WebスクレイピングにHrequestsを使用する方法

Webスクレイピングは、Webサイトから情報を抽出するための強力な方法ですが、サイトがCAPTCHA、レート制限、またはプロキシを実装して不要なスクレーパーをブロックする場合、しばしば課題となります。このガイドでは、高性能なWebスクレイピングライブラリであるhrequestsを紹介します。また、hrequestsの基本的な使用方法を説明します。これには、Capsolverと組み合わせたhrequestsを使用してサイトをスクレイピングするデモが含まれます。これにより、ReCaptchaの課題を回避できます。
hrequestsとは?
hrequestsは、速度と柔軟性を重視して構築された、最新のPython HTTPライブラリです。負荷の高いWebスクレイピングタスクを処理するために設計されています。これは、本質的にrequestsの拡張バージョンであり、特に追加のプロキシやCAPTCHA処理を必要とする環境において、より多くの制御でリクエストを処理することに重点を置いています。
このライブラリは、いくつかの機能を提供します。
- Asyncioのサポートは、同時リクエストを行うために使用できます。
- セッションの処理は、接続を効率的に再利用するために使用できます。
- プロキシのサポートは、プロキシの背後にあるリクエストを処理するために使用できます。
- レート制限のサポートは、ブロックされるのを回避するために使用できます。
- CAPTCHA解決のサポートは、外部サービスを使用して使用できます。
前提条件
hrequestsの使用を開始する前に、以下のものがインストールされていることを確認してください。
bash
pip install hrequests capsolver
スクレイピングするサイトが要求する場合、CAPTCHAを解決するためのCapsolver APIキーも用意してください。詳細なセットアップ手順については、hrequestsのGitHubページをご覧ください。
hrequestsの使い始め
以下は、hrequestsを使用してWebページをスクレイピングする方法の簡単な例です。
python
import hrequests
# スクラップしたいWebページのURL
url = 'https://example.com'
# 単純なGETリクエストを行う
response = hrequests.get(url)
# ステータスコードを出力
print(response.status_code)
python
print(f"ステータスコード: {response.status_code}")
# ページのコンテンツを出力します
print(f"ページコンテンツ: {response.text}")
この基本的なスクリプトは、指定されたURLへのGETリクエストを行い、ステータスコードとページコンテンツを出力します。ただし、多くのWebサイトはより複雑であり、プロキシローテーション、ユーザーエージェントのスプーフィング、またはCAPTCHAの解決などの追加の処理が必要です。
Capsolverとhrequestsを使用したCAPTCHAの処理
このセクションでは、CAPTCHAをバイパスするためにCapsolverをhrequestsと統合する方法について説明します。Capsolverは、ReCaptcha V2など、さまざまな種類のCAPTCHAの解決を支援する外部サービスです。これはWebサイトで一般的に使用されています。
Capsolverを使用してReCaptcha V2を解決し、CAPTCHAを最初に解決する必要があるページのコンテンツをスクレイピングする方法を紹介します。
例:Capsolverを使用したReCaptcha V2の解決
python
import capsolver
import hrequests
import os
# 機密情報の環境変数の使用を検討してください
PROXY = os.getenv("PROXY", "http://username:password@host:port")
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "あなたのCapsolver APIキー")
PAGE_URL = os.getenv("PAGE_URL", "PAGE_URL")
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "PAGE_SITE_KEY")
def solve_recaptcha_v2(url, key):
solution = capsolver.solve({
"type": "ReCaptchaV2Task",
"websiteURL": url,
"websiteKey": key,
"proxy": PROXY
})
return solution['solution']['gRecaptchaResponse']
def main():
print("ReCaptcha v2を解決しています")
solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
print("解決策: ", solution)
# CAPTCHAが解決されたので、スクレイピングを続行できます
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
# CAPTCHAソリューションを使用してGETリクエストを送信します
response = hrequests.get(
PAGE_URL,
headers=headers,
data={"g-recaptcha-response": solution},
python
proxies = {"http": PROXY, "https": PROXY}
)
# ステータスを確認し、ページの内容を出力
if response.status_code == 200:
print("ページを取得しました!")
print(response.text)
else:
print(f"ページの取得に失敗しました。ステータスコード: {response.status_code}")
if __name__ == "__main__":
main()
このスクリプトを拡張して、スクレイピングのニーズに合わせてください。hrequestsが提供する追加機能も試してみてください。スクレイピング活動がウェブサイトの利用規約と法的ガイドラインに従っていることを常に確認してください。
ハッピー・スクレイピング!
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

CAPTCHA 2026を解くために最適な拡張機能はどれですか?
オンラインセキュリティの進化し続ける世界において、CAPTCHAのチャレンジはインターネットユーザーにとって一般的な障壁となっています...

Nikolai Smirnov
12-Dec-2025

Sample Post
この記事では、Lumiproxyとは何か、および提供しているサービスについて紹介します。

Nikolai Smirnov
12-Dec-2025

Genlogin: 革新するウェブ自動化体験
この記事では、Genloginおよびその提供するサービスについてご紹介します。

Sora Fujimoto
12-Dec-2025

プロクシーズ.io : 個別のプロキシ あらゆるタスクに
本記事では、Proxys.ioとは何なのかと、彼らが提供するサービスについてご紹介します。

Nikolai Smirnov
12-Dec-2025

タブプロキシ: お得な海外住宅用プロキシ
この記事では、Tabproxyとは何か、および彼らが提供するサービスについてご紹介します。

Anh Tuan
12-Dec-2025

IP2World 住宅用プロキシ: リーディンググローバルIPプロキシソリューション
本記事では、IP2Worldとは何かおよび提供するサービスについてご紹介します。

Ethan Collins
12-Dec-2025

