CAPSOLVER
ブログ
BotrightとPythonを用いたWebスクレイピング(2025年)

BotrightとPythonを使ったウェブスクレイピング 2025年

Logo of CapSolver

Emma Foster

Machine Learning Engineer

14-Nov-2024


BotRightを使ってCAPTCHAを解く方法、簡単なスクレーパーを作成する方法、あるいはさらに優れた高度なスクレーパーを作成する方法について疑問に思っているかもしれません。
さあ、あなたのためのチュートリアルを始めましょう!

Botrightの概要

BotRightの概要

BotRight は、ウェブサイト全体で増加するボット検出システムの複雑さをナビゲートするように特別に設計された、高度なウェブ自動化のためのPythonライブラリです。基本的な自動化ツールとは異なり、BotRightは、自動化されたブラウジングを非常に人間らしいものにする洗練されたコントロールを提供することで、単純な対話を超えています。この人間の行動シミュレーションへの重点は、通常はボットをブロックまたは制限するウェブサイトにアクセスするために不可欠です。

Selenium WebDriverの上に構築されたBotRightは、複雑なブラウザの相互作用を単純なコマンドに抽象化する高レベルのAPIを提供し、初心者と上級者の両方が、低レベルのブラウザコマンドを管理する必要なく、洗練されたスクレーパーや自動化スクリプトを開発できます。これにより、単純なデータ収集から、ボット検出アルゴリズムに対する回復力を必要とする複雑な複数ステップのウェブタスクまで、さまざまなプロジェクトに最適な選択肢となります。

なぜBotRightを選ぶのか?

BotRightは、自動化の分野で際立つ、いくつかの機能を提供します。

  1. 人間らしい相互作用: BotRightの設計は、スムーズなマウスの動き、自然なタイピングパターン、タイミングの遅延など、実際の人間の行動をシミュレートすることに重点を置いています。これらの動作により、検出のリスクが軽減され、通常は本物のユーザーに制限されているコンテンツへのアクセスがより信頼性が高まります。

  2. ブラウザの状態の永続性: BotRightはブラウザプロファイルをサポートすることで、複数の自動化実行間でセッションの状態を維持できます。この機能は、ログインの永続性を必要とするタスク、または特定のCookieとキャッシュの状態を維持する必要があるタスクに特に役立ちます。

  3. 使いやすさ: BotRightは高度な機能を備えていますが、驚くほど使いやすく、APIは複雑な自動化タスクを効率化するように構造化されており、通常Selenium設定に伴う技術的なオーバーヘッドの大部分を解消しています。初心者でもすぐに始められますし、専門家はBotRightの柔軟性を活用して、高度にカスタマイズされたソリューションを構築できます。

  4. 複雑なワークフローのスケーラビリティ: BotRightは、AJAX駆動のサイトの処理、ページネーションされたデータ抽出の管理、CAPTCHAの解決など、より高度なタスクに適応できます。CapSolverなどのCAPTCHAソルバーと組み合わせることで、BotRightはCAPTCHAバイパスを必要とするワークフローを処理し、厳重に保護されたウェブサイトであっても自動化できます。

  5. 統合された拡張機能とプラグイン: BotRightは、自動化機能を強化するためにさまざまな拡張機能とプラグインの包含をサポートしています。たとえば、CapSolverのようなツールをBotRight内で使用すると、CAPTCHAの課題を管理できるため、スクレーピングや自動化のために、より幅広いウェブサイトのロックを解除できます。


Botrightのセットアップ

始める前に、システムにPython 3.7以上がインストールされていることを確認してください。次の手順に従ってBotrightをセットアップしてください。

  1. Botrightのインストール:

    bash Copy
    pip install botright
  2. WebDriver Managerのインストール:

    Botrightは、ブラウザドライバを管理するためにwebdriver_managerパッケージに依存しています。

    bash Copy
    pip install webdriver-manager
  3. インストールの確認:

    新しいPythonファイルを作成し、Botrightをインポートして、正しくインストールされていることを確認してください。

    python Copy
    from botright import Botright

    エラーが発生しない場合、Botrightは正しくインストールされています。


基本的なスクレーパーの作成

Botrightを使ってquotes.toscrape.comからデータを取得する簡単なスクリプトを作成しましょう。

引用符のスクレーピング

スクリプト: scrape_quotes.py

python Copy
from botright import Botright

def scrape_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        quotes = bot.find_elements_by_css_selector("div.quote")
        for quote in quotes:
            text = quote.find_element_by_css_selector("span.text").text
            author = quote.find_element_by_css_selector("small.author").text
            print(f"\"{text}\" - {author}")

if __name__ == "__main__":
    scrape_quotes()

スクリプトの実行:

bash Copy
python scrape_quotes.py

出力:

Copy
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” - Albert Einstein
...

説明:

  • Botrightをコンテキストマネージャーとして使用して、適切なセットアップとティアダウンを確保します。
  • bot.get()を使ってウェブサイトに移動します。
  • すべての引用符要素を見つけて、テキストと作成者を抽出します。

ページネーションの処理

スクリプト: scrape_quotes_pagination.py

python Copy
from botright import Botright

def scrape_all_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        while True:
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")

            # 次のページがあるか確認します
            next_button = bot.find_elements_by_css_selector('li.next > a')
            if next_button:
                next_button[0].click()
            else:
                break

if __name__ == "__main__":
    scrape_all_quotes()

説明:

  • "次へ"ボタンが利用可能かどうかを確認することで、ページをループ処理します。
  • find_elements_by_css_selectorを使って要素を見つけます。
  • "次へ"ボタンをクリックして、次のページに移動します。

動的コンテンツのスクレーピング

スクリプト: scrape_dynamic_content.py

python Copy
from botright import Botright
import time

def scrape_tags():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        # 'トップ10タグ'リンクをクリックして、タグを動的に読み込みます
        bot.click('a[href="/tag/"]')
        # 動的コンテンツが読み込まれるまで待ちます
        time.sleep(2)
        tags = bot.find_elements_by_css_selector("span.tag-item > a")
        for tag in tags:
            tag_name = tag.text
            print(f"Tag: {tag_name}")

if __name__ == "__main__":
    scrape_tags()

説明:

  • リンクをクリックして、タグページに移動します。
  • time.sleep()を使って、動的コンテンツが読み込まれるまで待ちます。
  • タグを抽出して印刷します。

フォームの送信とログイン

スクリプト: scrape_with_login.py

python Copy
from botright import Botright

def login_and_scrape():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/login")
        # ログインフォームに入力します
        bot.type('input#username', 'testuser')
        bot.type('input#password', 'testpass')
        bot.click("input[type='submit']")

        # ログアウトリンクを確認することで、ログインを確認します
        if bot.find_elements_by_css_selector('a[href="/logout"]'):
            print("ログインに成功しました!")

            # ここで引用符をスクレーピングします
            bot.get("https://quotes.toscrape.com/")
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")
        else:
            print("ログインに失敗しました。")

if __name__ == "__main__":
    login_and_scrape()

説明:

  • ログインページに移動して、資格情報を入力します。
  • ログアウトリンクの存在を確認することで、ログインを確認します。
  • ログインしているユーザーが利用できるコンテンツをスクレーピングします。

注: quotes.toscrape.comは、デモのためにどのユーザー名とパスワードも許可しているので、ダミーの資格情報を使用できます。


BotrightにCapSolverを統合する

quotes.toscrape.comにはCAPTCHAはありませんが、多くの現実世界のウェブサイトにはCAPTCHAがあります。そのような場合に備えて、CapSolverブラウザ拡張機能を使ってBotrightスクリプトにCapSolverを統合する方法を紹介します。

CapSolver拡張機能のダウンロード

  1. 拡張機能のダウンロード:

    • CapSolver GitHubリリースページにアクセスします。
    • 最新バージョン(例: capsolver-chrome-extension-v0.2.3.zip)をダウンロードします。
    • プロジェクトのルートディレクトリ(例: ./capsolver_extension)に解凍します。

CapSolver拡張機能の設定

  1. config.jsonを見つける:

    • パス: capsolver_extension/assets/config.json
  2. config.jsonを編集する:

    json Copy
    {
      "apiKey": "YOUR_CAPSOLVER_API_KEY",
      "enabledForcaptcha": true,
      "captchaMode": "token",
      "enabledForRecaptchaV2": true,
      "reCaptchaV2Mode": "token",
      "solveInvisibleRecaptcha": true,
      "verbose": false
    }
    • "YOUR_CAPSOLVER_API_KEY"を実際のCapSolver APIキーに置き換えてください。
    • 予想されるCAPTCHAの種類に基づいて、enabledForcaptchaまたはenabledForRecaptchaV2trueに設定します。
    • モードを"token"に設定すると、自動的に解決されます。

BotrightでのCapSolver拡張機能の読み込み

BotrightでCapSolver拡張機能を使用するには、ブラウザが起動時に拡張機能を読み込むように構成する必要があります。

注: Botrightでは、拡張機能の追加など、ブラウザオプションをカスタマイズできます。

修正済みスクリプト:

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os

def create_bot_with_capsolver():
    # CapSolver拡張機能フォルダーへのパス
    extension_path = os.path.abspath('capsolver_extension')

    # Chromeオプションを設定します
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # カスタムオプションを使ってBotrightを初期化します
    bot = Botright(options=options)
    return bot

説明:

  • Optionsをインポートする:
    • selenium.webdriver.chrome.optionsからChromeオプションを設定します。
  • Chromeオプションを設定する:
    • options.add_argument()を使って、CapSolver拡張機能を追加します。
  • オプションを使ってBotrightを初期化する:
    • Botrightのインスタンスを作成する際に、optionsを渡します。

CapSolver統合を使用した例となるスクリプト

GoogleのreCAPTCHAデモなど、reCAPTCHAのあるサイトに移動することで、統合を実証します。

スクリプト: scrape_with_capsolver_extension.py

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
import time

def solve_captcha_and_scrape():
    # CapSolver拡張機能フォルダーへのパス
    extension_path = os.path.abspath('capsolver_extension')

    # Chromeオプションを設定します
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # カスタムオプションを使ってBotrightを初期化します
    with Botright(options=options) as bot:
        bot.get("https://www.google.com/recaptcha/api2/demo")

        # CapSolverがCAPTCHAを解決するまで待ちます
        print("CAPTCHAが解決されるまで待ちます...")
        # 平均解決時間に合わせてスリープ時間を調整します
        time.sleep(15)

        # ページの内容を確認することで、CAPTCHAが解決されたかどうかを確認します
        if "Verification Success" in bot.page_source:
            print("CAPTCHAが正常に解決されました!")
        else:
            print("CAPTCHAがまだ解決されていません、または失敗しました。")

if __name__ == "__main__":
    solve_captcha_and_scrape()

説明:

  • Chromeオプションを設定する:
    • ブラウザセッションにCapSolver拡張機能を含めます。
  • オプションを使ってBotrightを初期化する:
    • Botrightのインスタンスを作成する際に、optionsを渡します。
  • ターゲットサイトに移動する:
    • bot.get()を使って、reCAPTCHAのあるサイトに移動します。
  • CAPTCHAが解決されるまで待つ:
    • CapSolver拡張機能は、CAPTCHAを自動的に解決します。
    • time.sleep()を使って待ちます。必要に応じて時間を調整してください。
  • CAPTCHAの解決を確認する:
    • ページの内容を確認して、CAPTCHAが解決されたかどうかを確認します。

重要な注記:

  • 拡張機能パス:
    • extension_pathが、CapSolver拡張機能フォルダーを正しく指していることを確認してください。
  • 待ち時間:
    • 解決時間は異なる場合があります。time.sleep()を適宜調整してください。
  • ドライバの管理:
    • BotrightはWebDriverを内部的に管理しています。optionsを渡すと、ドライバがカスタマイズされます。
  • コンプライアンス:
    • スクレーピングするウェブサイトの利用規約に準拠していることを確認してください。

スクリプトの実行:

bash Copy
python scrape_with_capsolver_extension.py

ボーナスコード

CapSolverで、トップCAPTCHAソリューションのボーナスコードを取得してください: scrape。これを利用すると、チャージするたびに、回数無制限に5%のボーナスが追加されます。

まとめ

CapSolverブラウザ拡張機能を使ってCapSolverBotrightに統合することで、ウェブスクレーピングプロジェクトでCAPTCHAの解決を自動化できます。これにより、CAPTCHAで保護されたサイトであっても、データ抽出が途切れることなく行われます。

要点:

  • Botrightは、人間らしい相互作用によってウェブ自動化を簡素化します。
  • CapSolverブラウザ拡張機能は、Botrightスクリプトに統合できます。
  • 拡張機能とブラウザオプションを適切に構成することが重要です。

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る

Webスクレイピングは合法か? 2025年包括ガイド
Webスクレイピングは合法か? 2025年版包括ガイド

2025年ウェブスクレイピングの法的課題:主要な規制、コンプライアンス、および事例研究

Logo of CapSolver

Sora Fujimoto

24-Jan-2025

2025年reCAPTCHA認識のためのトップ5 CAPTCHAソルバー
2025年reCAPTCHA認識のためのトップ5 CAPTCHAソルバー

2025年トップ5のCAPTCHAソルバー(AI駆動型CapSolverによる高速reCAPTCHA認識を含む)を探求し、速度、価格、精度を比較しましょう

Logo of CapSolver

Anh Tuan

23-Jan-2025

reCAPTCHA認識とは?初心者向けガイド
reCAPTCHA認識とは?初心者向けガイド

reCAPTCHA画像グリッドに苦戦していませんか?CapsolverのAI搭載認識機能が「すべて選択」の課題を瞬時に解決する方法をご覧ください。API統合、ブラウザ拡張機能、CAPTCHA解決を95%以上の精度で自動化するためのプロのヒントを学びましょう。

Logo of CapSolver

Ethan Collins

23-Jan-2025

reCAPTCHAサイトキーとは何か、そしてどのように見つけるのか?
reCAPTCHAサイトキーとは何か、そしてどのように見つけるのか?

reCAPTCHAサイトキーを手動またはCapsolverなどのツールを使って見つける方法、よくある問題の解決策、開発者やウェブスクレイピングのためのCAPTCHA自動化について学びましょう。

Logo of CapSolver

Anh Tuan

23-Jan-2025

2025年のWebスクレイピングにおけるCloudflareチャレンジの回避方法
2025年のWebスクレイピングにおけるCloudflareチャレンジの回避方法

2025年におけるCloudflareチャレンジとTurnstileの回避方法を学び、シームレスなウェブスクレイピングを実現しましょう。Capsolverとの統合、TLSフィンガープリンティングのヒント、CAPTCHA地獄を回避するための一般的なエラー修正方法を紹介します。時間を節約し、データ抽出をスケールアップしましょう。

Logo of CapSolver

Ethan Collins

23-Jan-2025

Webスクレイピングにおける画像CAPTCHAの解決方法:2025年完全ガイド
Webスクレイピングにおける画像CAPTCHAの解き方:2025年完全ガイド

CapSolverを使って2025年に画像CAPTCHAを効果的に解決する方法を学ぶ

Logo of CapSolver

Sora Fujimoto

23-Jan-2025