このチュートリアルでは、次のことを学びます:
- Botrightとは?
- ウェブスクレイピングのための使い方
- BotrightでCAPTCHAを解くステップバイステップガイド
- スクレイピング・ワークフローにおけるCAPTCHA解決のためのBotrightの代替案
- 本ライブラリーの限界とその克服法
さあ、飛び込もう!
Botrightとは?
Botrightは、ブラウザのインタラクションを自動化し、ウェブサイトからデータを抽出するためのオープンソースのPythonウェブスクレイピングフレームワークです。ブラウザの自動化とステルス技術を活用し、実際のユーザーの行動を模倣します。そのため、動的なウェブサイトや、Cloudflareのようなアンチボットシステムによって保護されたウェブサイトのスクレイピングに効果的です。
Playwrightをベースとし、機械学習モデルを使ってCAPTCHAを回避することができます。ボットを阻止するという目的を達成するため、CAPTCHAは人間には簡単に解けるが、自動化されたスクリプトには難しいように設計されている。それでも、機械学習モデルの中には、ボットを出し抜けるほど強力なものもある。
👍プロ:
- アンチボット検知回避Botrightは、アンチボットシステムを回避するために特別に構築されています。これは、ブラウザのフィンガープリントを変更したり、実際のブラウザエンジンや変更されたブラウザエンジンを使用したり、人間のようなインタラクションをシミュレートするなどの機能によって実現されています。
- 組み込みのCAPTCHA解決:一般的なCAPTCHAを解くための機械学習機能を内蔵しています。
- 動的コンテンツを扱うブラウザ自動化ツールとして、JavaScriptを多用するウェブサイトや動的コンテンツの読み込みに対応する。
👎短所:
- 多くの依存関係:CAPTCHAを解く機能を公開するために、いくつかの数学、機械学習、高度なインタラクション・ライブラリに依存している。これらにより、フルインストールのサイズが数GBに達することがある。
- 進化するボット対策ウェブサイトがボット検出技術やCAPTCHAを更新するにつれ、どのような検出防止ライブラリも時間とともにその有効性が低下する可能性があります。
- メンテナンスされていない:ライブラリは頻繁に更新されておらず、古いバージョンのPythonと、動作させるための手動での微調整が必要です。
ウェブスクレイピングのためのBotrightの使い方
BotrightはPlaywrightの上に構築されている。したがって、初期化した後、Playwrightで公開されているWebスクレイピングのAPIを使用することができる:
import asyncio
import botright
async def main():
# Create a Botright browser instance
botright_client = await botright.Botright()
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Visit the target page
await page.goto("https://example.com")
# Scraping logic with the Playwright API...
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "__main__":
asyncio.run(main())
Botrightは非同期モードでのみ利用可能なので、asyncio
経由で使用する必要があることに注意。
Botwrightでブラウザを初期化した後、Playwright APIを使用してWebスクレイピングを行うことができます。
BotrightでCAPTCHAを解く方法:ステップバイステップガイド
Botrightの真のスーパーパワーは、CAPTCHAを解く能力だ。GitHubの公式ページによると、解決できるCAPTCHAは以下の通り:
キャプチャタイプ | 解決済み | 成功率 |
---|---|---|
hCaptcha | ハカプトチャレンジャー |
最大90 |
リキャプチャ | 再認識 |
50%から80 |
v3インテリジェント・モード | ボットライトのステルス性 | 100% |
v3スライダーキャプチャ | cv2.matchTemplate |
100% |
v3 ナイン・キャプチャ | クリップ検出 | 50% |
v3 アイコンキャプチャ | cv2.matchTemplate / SSIM / CLIP |
70% |
v4インテリジェント・モード | ボットライトのステルス性 | 100% |
v4 スライダーキャプチャ | cv2.matchTemplate |
100% |
v4 GoBang Captcha | 数学の計算 | 100% |
v4 アイコンキャプチャ | cv2.matchTemplate / SSIM / CLIP |
60% |
v4 IconCrush Captcha | 数学の計算 | 100% |
このセクションでは、Botrightを使ってGoogle reCAPTCHAを解く方法をご紹介します。以下の手順に従って、ゴールを目指してください!
必要条件
このチュートリアルを再現するには、以下の前提条件を満たす必要がある:
- Python3.10.11をインストールしました。
pipの
最新バージョン。
注意:Pythonの最新バージョンはBotrightでは動作しません。そのため、お使いのマシンにバージョン3.10.11またはそれ以下がインストールされている必要があります。
ステップ1:プロジェクトのセットアップとBotrightのインストール
このセクションの最後に、プロジェクトフォルダーを表すbotright_project/が
含まれます:
botright_project/
├── scaper.py
└── venv/
どこでだ:
scraper.pyは
Botright CAPTCHA解決ロジックを含むPythonファイルです。venv/
はPython 3.10の仮想環境です。
Windowsでは、次のようにPython 3.10の仮想環境ディレクトリvenv/を
作成します:
py -3.10 -m venv venv
これを有効にするには、以下を実行する:
venv\Scripts\activate
同様に、Linuxでは、実行する:
python3.10 -m venv venv
そして、それを起動させる:
source venv/bin/activate
起動した仮想環境で、pipを
最新バージョンにアップグレードします:
python -m pip install --upgrade pip
そして、Botrightをインストールする:
pip install botright --use-pep517
pip install hcaptcha_challenger==="0.10.1.post2"
注釈
--use-pep517は
、pyproject.toml
ファイルに依存する全てのレガシー依存関係が正しくインストールされることを確認するために必須です。hcaptcha_challenger
は、Botright の最新バージョンがリリースされてから大きく進化しました。詳しくは、最新版のhcaptcha_challenger
は、Botright が裏で呼び出すメソッドを公開しなくなりました。そのため、ライブラリを動作させるには特定のバージョンをインストールする必要があります。
素晴らしい!BotrightでCAPTCHAを解く環境が整いました。
ステップ #2: CAPTCHA解決ロジックの定義
Botrightを使ってCAPTCHAを解決するには、scraper.py
ファイルに以下のコードを記述します:
import asyncio
import botright
async def scraper():
# Start the Botright instance
botright_client = await botright.Botright(headless=True)
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Open the target web page with the reCAPTCHA demo
await page.goto("https://www.google.com/recaptcha/api2/demo")
# Solve the CAPTCHA
await page.solve_recaptcha()
# Screenshot the page to capture the solved CAPTCHA
await page.screenshot(path="screenshot.png")
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "_main_":
asyncio.run(scraper())
上記のコード:
new_browser()
メソッドを使用して、ヘッドレスモードでBotrightブラウザインスタンスを起動します。- 新しいページインスタンスを作成し、reCAPTCHAデモページを開きます。
- メソッド
solve_recaptcha()
で CAPTCHA を解決する。 - 解決されたCAPTCHAのスクリーンショットを作成し、ブラウザのインスタンスを閉じる。
注意: 他のタイプのCAPTCHAを解くために必要なサポートされた方法については、ドキュメントの「Captcha Solving」セクションをお読みください。
完璧です!あなたはBotrightを使ってreCAPTCHAを解くロジックを書きました。
ステップ3:コードの実行
でコードを実行する:bash python scraper.py
headless=False
でスクリプトを実行するとこのようになります:
Botrightスクリプトが生成するscreenshot.pngには
、以下の内容が含まれる:
最終的には、スクリプトがすべての画像を検出し、自動的にCAPTCHAを解くはずである。しかし、精度は100%保証されているわけではないので、たまに失敗することがあります。そのような場合は、成功するまでスクリプトを実行し続けましょう。本番環境では、自動再試行ロジックを実装する必要があります。
ご覧の通り、Botrightは機械学習モデルと自動化された人間統合ツールを組み合わせている:
- CAPTCHAが何を尋ねているのかを理解する
- 必要な条件に一致する画像を検出する
- 人間のように画像をクリックする
ミッション完了!
CAPTCHAを解決するためのBotrightに代わるもの
CAPTCHAは、ほとんどのボットに対しても有効です。CAPTCHAは、一般ユーザーのエクスペリエンスを混乱させる可能性はあるものの、AIスクレイパーやクローラーに対する主要な防御手段の1つであることに変わりはない。そのため、ほとんどのウェブサイトがAIボットの増加傾向からページやデータを保護したいと考えているため、CAPTCHAはますます普及しています。
現在、CAPTCHAを解決できるツールはBotrightだけではありません。スクレイピング中にCAPTCHAを回避する必要がある場合は、以下の代替ライブラリやアプローチをご検討ください:
- PuppeteerでCAPTCHAを回避する方法
- PythonでSeleniumを使ってCAPTCHAを回避する方法
- PlaywrightでCAPTCHAを回避する方法
- 2025年版SeleniumBaseによるWebスクレイピング入門
- ウェブスクレイピングのために検出されないChromeDriverを使用する方法
- 2025年ベストCAPTCHAプロキシ5選
ウェブスクレイピングにおけるBotright使用の限界
BotrightはウェブスクレイピングでCAPTCHAを解くためのかなり効果的なツールだが、完璧にはほど遠い。このライブラリーは機械学習ベースの方法を使用しており、常に一貫した結果が得られるとは限らない。さらに、やや古く、頻繁にメンテナンスされていない。
特に最近のCAPTCHAがますます複雑になっていることを考えると、これは大きな問題だ。その結果、Botrightの背後にある機械学習モデルは、追いつくために定期的なアップデートが必要になる。
要するに、Botrightが最新のCAPTCHAを解くことは期待しないでください。hCaptchaが提供するような新しいパズルベースのCAPTCHAに直面した場合は特にそうです:
先のビデオ結果(3倍速で録画)にあるように、Botrightは特に高速ではない。その理由は、reCAPTCHAが提示するそれぞれの新しい画像を分析し、クリックすべき正しい画像を決定するために、多くの計算リソースを消費するからである。実際のシナリオでは、BotrightはreCAPTCHAを解くのに15秒かかることもある。これは、大規模なスクレイピング操作には長すぎます。
さらに、BotrightはPlaywrightをベースにしているため、ブラウザ自動化ツールにありがちな制約がある。これには、ヘッドレスモードでのブラウザフィンガープリントの問題や、高いリソース消費などが含まれる。
ブラウザの自動化に基づくスクレイピング・ワークフローにおいて、より速く、より一貫性のあるCAPTCHAを解くためには、ウェブスクレイピングに最適化されたクラウドベースのブラウザを使用するのがより良い選択肢です。そのソリューションがScraping Browserです。
Scraping Browserはクラウド・スクレイピング・ブラウザで、アンチボット・バイパス機能、自動IPローテーション、ブラウザ・フィンガープリント・プロテクション、リトライ・メカニズム、そしてもちろんCAPTCHA解決機能を内蔵している。
特にこのソリューションでは、reCAPTCHA、hCaptcha、px_captcha、SimpleCaptcha、GeeTest CAPTCHA、FunCaptcha、Cloudflare Turnstile、AWS WAF Captcha、KeyCAPTCHAなど、さまざまなCAPTCHAを扱うことができます。
結論
この記事では、Botrightがブラウザの自動化と機械学習を活用して、ウェブスクレイピング目的のCAPTCHAを解決する方法を学んだ。Botrightは柔軟なアンチボット機能を提供する一方で、パフォーマンスの低下、リソース消費の多さ、依存関係の古さ、結果の一貫性のなさに悩まされています。
CAPTCHAを大規模に克服するための、より迅速で簡単なソリューションを必要とする企業やチームに対して、Bright Dataは、Botrightのオープンソースアプローチをはるかに超える、いくつかの先進的な製品を提供しています:
- CAPTCHAソルバー:幅広いCAPTCHAタイプ(reCAPTCHA、hCaptcha、Cloudflareなど)をサポートし、ローカルに依存することなく高い成功率を実現するエンタープライズグレードのソルバーです。
- スクレイピング・ブラウザ自動IPローテーション、アンチボット・プロテクション、シームレスなCAPTCHAソリューションを備え、効率性と信頼性のためにすべてクラウドで管理されます。
- ウェブアンロッカー最も困難なアンチボットおよびアンチ CAPTCHA の課題に対処するために設計された次世代のロック解除エンジンで、手動による介入は一切なく、すべてのサイトリクエストに対して最適なアプローチを自動的に選択します。
- プロキシサービス:世界最大のプロキシプール(家庭用、データセンター用、モバイル用)にアクセスし、地理的制限を回避して匿名性を高めることができます。
- スクレイパーAPI:構造化されたウェブデータを大規模に抽出するためのツールで、すべてのリクエストにアンチブロッキングとCAPTCHAソルビングが組み込まれており、さらに直感的な管理ダッシュボードも備えています。
Bright Dataなら、どんな複雑なウェブサイトでもスクレイピングでき、エンジニアリングリソースを節約し、業界のベストプラクティスへの準拠を保証します。今すぐ無料トライアルを開始!
クレジットカードは必要ありません