CAPSOLVER
ブログ
EasySpiderでのCaptcha解決方法(CapSolver統合)

EasySpiderでCapSolverインテグレーションを使用してCaptchaを解く方法

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

04-Feb-2026

Easyspider CapSolver CAPTCHA統合

EasySpiderは、コードを書かずにブラウザの自動化タスクを設計・実行できる強力な視覚的なウェブスクレイピングツールです。直感的なフローチャートベースのインターフェースにより、プログラミング経験のないユーザーでも使いやすく、開発者向けには高度な機能も備えています。

CapSolverは、EasySpiderの自動化体験を完結させるために、シームレスなCAPTCHA解決を提供します。EasySpiderは複数のCAPTCHA認識方式をサポートしていますが、CapSolverのAI駆動の解決ソリューションを統合することで、reCAPTCHA、Cloudflare Turnstile、その他のCAPTCHAチャレンジを信頼性高く高速に回避できます。


EasySpiderとは何ですか?

EasySpiderは、無料でオープンソースの視覚的なウェブクローラーおよびブラウザ自動化ツールです。従来のスクレイピングライブラリとは異なり、コード知識が不要で、ウェブ要素をクリックしてタスクを視覚的に設計できます。

コア哲学

EasySpiderは3つの基本原則に基づいて動作します:

  1. ビジュアルファーストデザイン:直感的なフローチャートインターフェースを通じて複雑な自動化ワークフローを構築
  2. ノーコードアクセス:コード経験に関係なく、Excelのように簡単にタスクを設計
  3. 完全拡張性:必要に応じてカスタムJavaScript、Pythonコード、Seleniumステートメントを実行

EasySpiderの主な特徴

  • ビジュアルタスクデザイナー:クリックで自動化ワークフローを構築
  • クロスプラットフォーム:Windows、macOS、Linux対応
  • ヘッドレスモード:ブラウザウィンドウを表示せずにタスクを実行
  • カスタムコード実行:ワークフロー内でJavaScriptとPythonコードを実行
  • Selenium統合:Seleniumステートメントでブラウザを直接操作
  • API呼び出し:外部システムやサービスを呼び出す
  • コマンドライン実行:CLI経由でタスクをプログラム的に実行
  • スケジュールタスク:繰り返しデータ収集を自動化

ワークフロー特徴

特徴 説明
無限ループのネスト 複雑なページネーションと多段階データ抽出を処理
条件分岐 ページコンテンツに基づく決定ポイントを構築
Breakステートメント フローチャート内のどこでもループを終了
正規表現 パターンマッチングでデータを抽出
OCR認識 画像やスクリーンショットからテキストを抽出
プロキシサポート IPをローテーションし、接続をトンネル化

CapSolverとは何ですか?

CapSolverは、さまざまなCAPTCHAチャレンジを回避するためのAI駆動のソリューションを提供するリーディングCAPTCHA解決サービスです。複数のCAPTCHAタイプをサポートし、高速な応答時間を提供するため、自動化ワークフローにシームレスに統合できます。

サポートされているCAPTCHAタイプ

EasySpiderとCapSolverを統合する理由

EasySpiderは組み込みのCAPTCHAサポートを提供していますが、CapSolverを統合することで以下のような利点があります:

  1. 高い成功確率:CapSolverのAI駆動のソリューションは一貫して高い成功確率を実現
  2. 高速解決:最適化されたインフラでトークンを迅速に取得
  3. 広範なカバレッジすべての主要なCAPTCHAタイプをサポート
  4. 信頼性:優れたアップタイムを持つエンタープライズグレードのサービス
  5. スケーラビリティ:ボトルネックなしに高ボリュームの自動化を処理

インストール

EasySpiderのインストール

  1. GitHubリリースから最新版をダウンロード
  2. ご使用のプラットフォームに適したバージョンを選択:
    • 64ビットWindows用: EasySpider_windows_x64.zip
    • 32ビットWindows用: EasySpider_windows_x86.zip
    • macOS用: EasySpider_MacOS.dmg
    • Linux用: EasySpider_Linux_x64.tar.gz
  3. アーカイブを解凍し、EasySpider.exe(Windows)または適切な実行ファイルを実行

注意: プロセス間通信にポート8084が利用可能であることを確認してください。

カスタム統合用のPython依存関係

CapSolverのヘルパー スクリプトを使用する予定がある場合:

bash Copy
pip install requests

EasySpider用のCapSolverユーティリティの作成

Pythonワークフローに適した再利用可能なCapSolverユーティリティクラスです:

基本的なCapSolverサービス

python Copy
import requests
import time
from typing import Optional
from dataclasses import dataclass

CAPSOLVER_API_KEY = 'YOUR_CAPSOLVER_API_KEY'

@dataclass
class TaskResult:
    status: str
    solution: Optional[dict] = None
    error_description: Optional[str] = None


class CapSolverService:
    def __init__(self, api_key: str = CAPSOLVER_API_KEY):
        self.api_key = api_key
        self.base_url = 'https://api.capsolver.com'

    def create_task(self, task_data: dict) -> str:
        response = requests.post(
            f'{self.base_url}/createTask',
            json={
                'clientKey': self.api_key,
                'task': task_data
            }
        )
        data = response.json()

        if data.get('errorId', 0) != 0:
            raise Exception(f"CapSolverエラー: {data.get('errorDescription')}")

        return data['taskId']

    def get_task_result(self, task_id: str, max_attempts: int = 60) -> TaskResult:
        for _ in range(max_attempts):
            time.sleep(2)

            response = requests.post(
                f'{self.base_url}/getTaskResult',
                json={
                    'clientKey': self.api_key,
                    'taskId': task_id
                }
            )
            data = response.json()

            if data.get('status') == 'ready':
                return TaskResult(
                    status='ready',
                    solution=data.get('solution')
                )

            if data.get('status') == 'failed':
                raise Exception(f"タスク失敗: {data.get('errorDescription')}")

        raise Exception('CAPTCHA解決待ちのタイムアウト')

    def solve_recaptcha_v2(self, website_url: str, website_key: str) -> str:
        task_id = self.create_task({
            'type': 'ReCaptchaV2TaskProxyLess',
            'websiteURL': website_url,
            'websiteKey': website_key
        })

        result = self.get_task_result(task_id)
        return result.solution.get('gRecaptchaResponse', '') if result.solution else ''

    def solve_turnstile(
        self,
        website_url: str,
        website_key: str,
        action: Optional[str] = None,
        cdata: Optional[str] = None
    ) -> str:
        task_data = {
            'type': 'AntiTurnstileTaskProxyLess',
            'websiteURL': website_url,
            'websiteKey': website_key
        }

        if action or cdata:
            metadata = {}
            if action:
                metadata['action'] = action
            if cdata:
                metadata['cdata'] = cdata
            task_data['metadata'] = metadata

        task_id = self.create_task(task_data)
        result = self.get_task_result(task_id)
        return result.solution.get('token', '') if result.solution else ''


# グローバルインスタンス
capsolver = CapSolverService()

統合方法

EasySpiderはCapSolverを統合する複数の方法を提供します。ご自身の使用ケースに最も適した方法を選択してください。

方法1: JavaScript挿入によるカスタムアクション

EasySpiderはワークフロー内でカスタムJavaScriptを実行できます。これは最も直感的な統合方法です。

ステップ1: EasySpiderで新しいタスクを作成し、CAPTCHA保護ページに移動します

ステップ2: 以下のJavaScriptを含む「カスタムアクション」ノードを追加します:

javascript Copy
// reCAPTCHA要素からsitekeyを抽出
var siteKey = document.querySelector('.g-recaptcha').getAttribute('data-sitekey');
var pageUrl = window.location.href;

// 次のステップで使用するための保存
window.captchaSiteKey = siteKey;
window.captchaPageUrl = pageUrl;

// デバッグ用のログ
console.log('Site Key:', siteKey);
console.log('Page URL:', pageUrl);

ステップ3: EasySpiderの外部システムコール機能を使用して、CAPTCHAを解決しトークンを返すPythonスクリプトを呼び出します

ステップ4: トークンを挿入する別の「カスタムアクション」ノードを追加します:

javascript Copy
// 外部スクリプトから渡されたトークン
var token = arguments[0];  // EasySpiderから渡される

// レスポンステキストエリアを表示しトークンを設定
document.getElementById('g-recaptcha-response').style.display = 'block';
document.getElementById('g-recaptcha-response').value = token;

// コールバック関数がある場合、実行
if (typeof ___grecaptcha_cfg !== 'undefined') {
    var clients = ___grecaptcha_cfg.clients;
    if (clients) {
        Object.keys(clients).forEach(function(key) {
            var client = clients[key];
            if (client.callback) {
                client.callback(token);
            }
        });
    }
}

方法1B: EasySpiderを使用したTurnstile(プロキシなし)ワークフロー

EasySpiderのビジュアルノードを使用してプロキシなしのTurnstileワークフローを構築します。プロキシは必要ありません。

ステップ1: 新しいタスクを作成し、Turnstile保護ページに移動します。

ステップ2: 3つのカスタムアクションノード(コードモード = JavaScript)を追加してTurnstileメタデータをキャプチャします:

javascript Copy
// ノードタイトル: TS_SiteKey
return document.querySelector('.cf-turnstile')?.getAttribute('data-sitekey') || '';
javascript Copy
// ノードタイトル: TS_Action(オプション)
return document.querySelector('.cf-turnstile')?.getAttribute('data-action') || '';
javascript Copy
// ノードタイトル: TS_Cdata(オプション)
return document.querySelector('.cf-turnstile')?.getAttribute('data-cdata') || '';

ステップ3: システムコマンドを実行するノードを追加して、CapSolverでTurnstileを解決します:

bash Copy
python captcha_solver.py "{{current_url}}" "Field[\"TS_SiteKey\"]" "turnstile" "Field[\"TS_Action\"]" "Field[\"TS_Cdata\"]"

このノードに「Token」という名前を付けて、出力をField["Token"]として参照できるようにします。

ステップ4: カスタムアクションノード(JavaScript)を追加してトークンを挿入します:

javascript Copy
var token = `Field["Token"]`;
var inputs = document.querySelectorAll('input[name="cf-turnstile-response"], input[name="turnstile-response"]');
inputs.forEach(function(el) {
    el.value = token;
    el.dispatchEvent(new Event('input', { bubbles: true }));
    el.dispatchEvent(new Event('change', { bubbles: true }));
});

ステップ5: フォームの送信ボタンをクリックする(またはJSで送信)します。

注意: プロキシなしTurnstileは多くのサイトで動作しますが、一部の展開ではトークンがソルバーのIPに対して検証される場合があります。その場合、プロキシベースの解決が必要です。

方法3: EasySpiderのExecuteStageの修正

上級ユーザー向けに、EasySpiderのPython実行エンジンを直接拡張できます。easyspider_executestage.pyスクリプトはタスク実行を処理し、CapSolver統合を含むように修正できます。

場所: {EasySpider_Directory}/Code/easyspider_executestage.py

実行コンテキストにCapSolverサービスを追加します:

python Copy
# easyspider_executestage.pyの先頭にインポートを追加
import requests
import time

# CapSolverクラスを追加
class CapSolverService:
    # ...(上記の実装)...
    pass

# グローバルインスタンスを作成
capsolver = CapSolverService('YOUR_CAPSOLVER_API_KEY')

# これにより、eval/execブロック内でcapsolver.solve_recaptcha_v2()が利用可能になります

その後、EasySpiderタスクで「Pythonコードを実行」機能を使用します:

python Copy
# EasySpiderのPython実行ブロックで
site_key = driver.find_element_by_class_name('g-recaptcha').get_attribute('data-sitekey')
token = capsolver.solve_recaptcha_v2(current_url, site_key)
driver.execute_script(f'''
    document.getElementById('g-recaptcha-response').value = `{token}`;
''')

ベストプラクティス

1. エラー処理とリトライ

python Copy
import time
from functools import wraps
from typing import Callable, TypeVar, Any

T = TypeVar('T')

def retry(max_retries: int = 3, exponential_backoff: bool = True):
    """指数バックオフによるリトライロジックのデコレータ。"""
    def decorator(func: Callable[..., T]) -> Callable[..., T]:
        @wraps(func)
        def wrapper(*args: Any, **kwargs: Any) -> T:
            last_exception = None

            for attempt in range(max_retries):
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    last_exception = e

                    if attempt < max_retries - 1:
                        delay = (2 ** attempt) if exponential_backoff else 1
                        print(f'試行 {attempt + 1} が失敗しました。{delay}秒後に再試行します...')
                        time.sleep(delay)

            raise last_exception

        return wrapper
    return decorator


@retry(max_retries=3, exponential_backoff=True)
def solve_with_retry(capsolver, url: str, site_key: str) -> str:
    return capsolver.solve_recaptcha_v2(url, site_key)

2. バランス管理

python Copy
def check_balance(api_key: str) -> float:
    response = requests.post(
        'https://api.capsolver.com/getBalance',
        json={'clientKey': api_key}
    )
    data = response.json()
    return data.get('balance', 0)


def main():
    balance = check_balance(CAPSOLVER_API_KEY)

    if balance < 1:
        print('警告: CapSolverの残高が少ないです!再充電してください。')
    else:
        print(f'現在の残高: ${balance:.2f}')

3. EasySpiderのコマンドライン実行

コマンドラインからEasySpiderタスクを実行します:

bash Copy
# 基本的な実行
python easyspider_executestage.py --id [task_id] --read_type local --headless 1

# 全パラメータで実行
python easyspider_executestage.py \
    --ids [0] \
    --server_address http://localhost:8074 \
    --config_folder "./" \
    --headless 1 \
    --read_type local

完全なワークフロー: CapSolverを統合したEasySpiderタスク

以下に、CapSolver統合を含む完全なEasySpiderワークフローの作成方法を示します:

ステップ1: EasySpiderでタスクを設計

  1. EasySpiderを起動し、「タスクの設計」をクリックします
  2. ターゲットURLを入力します(例: https://www.google.com/recaptcha/api2/demo
  3. ワークフローノードを追加します:
    • ページを開く: URLに移動
    • カスタムアクション: CAPTCHAを検出するJavaScriptを実行
    • システムコール: CapSolverを呼び出すPythonスクリプト
    • カスタムアクション: トークンを挿入
    • 要素をクリック: フォームを送信
    • データを収集: 結果を抽出
      captcha_solver.py を EasySpider ディレクトリに保存してください:
python Copy
#!/usr/bin/env python3
"""
CapSolver ヘルパー スクリプト for EasySpider
使用方法: python captcha_solver.py <url> <site_key> <captcha_type> [action] [cdata]
"""

import sys
import requests
import time

CAPSOLVER_API_KEY = 'YOUR_CAPSOLVER_API_KEY'

def solve_captcha(url, site_key, captcha_type='recaptcha_v2', action=None, cdata=None):
    """CAPTCHA を解決し、トークンを返します。"""

    if captcha_type == 'recaptcha_v2':
        task_type = 'ReCaptchaV2TaskProxyLess'
    elif captcha_type == 'turnstile':
        task_type = 'AntiTurnstileTaskProxyLess'
    else:
        raise ValueError(f'不明な CAPTCHA タイプ: {captcha_type}')

    # タスクを作成
    task = {
        'type': task_type,
        'websiteURL': url,
        'websiteKey': site_key
    }
    if captcha_type == 'turnstile' and (action or cdata):
        metadata = {}
        if action:
            metadata['action'] = action
        if cdata:
            metadata['cdata'] = cdata
        task['metadata'] = metadata

    response = requests.post(
        'https://api.capsolver.com/createTask',
        json={
            'clientKey': CAPSOLVER_API_KEY,
            'task': task
        }
    )
    data = response.json()

    if data.get('errorId', 0) != 0:
        raise Exception(f"エラー: {data.get('errorDescription')}")

    task_id = data['taskId']

    # 結果をポーリング
    for _ in range(60):
        time.sleep(2)

        response = requests.post(
            'https://api.capsolver.com/getTaskResult',
            json={
                'clientKey': CAPSOLVER_API_KEY,
                'taskId': task_id
            }
        )
        data = response.json()

        if data.get('status') == 'ready':
            solution = data.get('solution', {})
            return solution.get('gRecaptchaResponse') or solution.get('token')

        if data.get('status') == 'failed':
            raise Exception(f"失敗: {data.get('errorDescription')}")

    raise Exception('タイムアウト')


if __name__ == '__main__':
    if len(sys.argv) < 3:
        print('使用方法: python captcha_solver.py <url> <site_key> [captcha_type] [action] [cdata]')
        sys.exit(1)

    url = sys.argv[1]
    site_key = sys.argv[2]
    captcha_type = sys.argv[3] if len(sys.argv) > 3 else 'recaptcha_v2'
    action = sys.argv[4] if len(sys.argv) > 4 else None
    cdata = sys.argv[5] if len(sys.argv) > 5 else None

    try:
        token = solve_captcha(url, site_key, captcha_type, action, cdata)
        print(token)  # EasySpider がキャプチャするためのトークンを出力
    except Exception as e:
        print(f'エラー: {e}', file=sys.stderr)
        sys.exit(1)

ステップ3: EasySpider でスクリプトを使用するように設定する

EasySpider のワークフローで、"Execute System Command" ノードを追加します:

bash Copy
python captcha_solver.py "{{current_url}}" "{{site_key}}" "recaptcha_v2"

Turnstile (プロキシレス) 用に:

bash Copy
python captcha_solver.py "{{current_url}}" "{{site_key}}" "turnstile" "{{action}}" "{{cdata}}"

出力された (トークン) は、後続の JavaScript インジェクション ステップでキャプチャして使用できます。


結論

CapSolver を EasySpider に統合することで、視覚的なウェブ自動化に強力な組み合わせが生まれます。EasySpider の直感的なフローチャートインターフェースにより、誰でもタスクの設計が可能です。一方、CapSolver は、それ otherwise でブロックされる CAPTCHA の課題を処理します。

この統合の主な利点:

  • 視覚的 + 強力: コードを書かずにタスクを視覚的に設計し、複雑な CAPTCHA を処理
  • 複数の統合方法: EasySpider のワークフロー内でカスタム JavaScript インジェクション、システムコマンドで呼び出す外部 Python スクリプト、または直接的な Python 実行エンジンの修正
  • すべての CAPTCHA タイプ: reCAPTCHA v2、v3、Cloudflare Turnstile、チャレンジなど
  • プロダクション対応: エラー処理、リトライ、残高管理が含まれます
  • クロスプラットフォーム: Windows、macOS、Linux で動作

データ抽出パイプライン、モニタリングシステム、自動テストフレームワークを構築している場合、EasySpider + CapSolver の組み合わせは、現代のウェブ自動化に必要な視覚的な設計体験と CAPTCHA 解決能力を提供します。


始めましょうか? CapSolver に登録 し、初回チャージで EASYSPIDER のボーナスコードを使用してください!


FAQ

EasySpider とは何ですか?

EasySpider は、コードを書かずにタスクを視覚的に設計できる無料でオープンソースのウェブスクレイピングおよびブラウザ自動化ツールです。また、Advanced なユースケース用にカスタム JavaScript、Python コード、Selenium ステートメントもサポートしています。

CapSolver は EasySpider とどのように統合されますか?

CapSolver は、EasySpider のワークフロー内でカスタム JavaScript インジェクション、システムコマンドで呼び出す外部 Python スクリプト、または EasySpider の Python 実行エンジンを直接修正する方法で統合されます。すべての方法は CapSolver の API を使用して CAPTCHA を解決し、トークンをページにインジェクションします。

EasySpider は独自に CAPTCHA を解決しますか?

EasySpider は一部の CAPTCHA 認識スキームと OCR 機能を内蔵しています。しかし、CapSolver と統合することで、プロダクション用の自動化ワークフローでより高い成功確率、より早い解決時間、そして広範な CAPTCHA タイプのカバーが可能になります。

CapSolver はどの種類の CAPTCHA を解決できますか?

CapSolver は、reCAPTCHA v2、reCAPTCHA v3、Cloudflare Turnstile、AWS WAF、GeeTest v3/v4 など、幅広い CAPTCHA タイプをサポートしています。

CapSolver の料金はどのくらいですか?

CapSolver は、解決する CAPTCHA の種類と量に基づいて競争力のある料金を提供しています。現在の料金詳細については capsolver.com を参照してください。初回チャージで EASYSPIDER のコードを使用すると、5% のボーナスが受けられます。

EasySpider は無料で使用できますか?

はい、EasySpider は AGPL-3.0 ライセンスの下で完全に無料でオープンソースです。ソフトウェアは無料の商用利用および修正が可能です。ネットワークサービスの展開では、ユーザーにソースコードへのアクセスを提供する必要があります。

CAPTCHA のサイトキーを見つける方法は?

サイトキーは通常、ページの HTML ソースに含まれています:

  • reCAPTCHA: .g-recaptcha 要素の data-sitekey 属性
  • Turnstile: .cf-turnstile 要素の data-sitekey 属性

EasySpider のタスクをコマンドラインから実行できますか?

はい、easyspider_executestage.py を通じて EasySpider はコマンドライン実行をサポートしています。これにより、他のシステムとの統合、スケジュールされたタスク実行、ヘッドレス自動化が可能になります。

EasySpider はどのプラットフォームをサポートしていますか?

EasySpider は Windows (x64/x86)、macOS、Linux に対応しています。適切なバージョンは GitHub リリースページからダウンロードできます。

EasySpider でプロキシを使用できますか?

はい、EasySpider はプロキシ IP 設定およびトンネルスイッチングをサポートしています。タスク設定または EasySpider のブラウザ起動オプションを通じてプロキシを構成できます。

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

もっと見る

イージースパイダー キャプソルバー CAPTCHA インテグレーション
EasySpiderでCapSolverインテグレーションを使用してCaptchaを解く方法

EasySpiderはビジュアルでノーコードのウェブスクリーピングおよびブラウザ自動化ツールであり、CapSolverと組み合わせることで、reCAPTCHA v2やCloudflare TurnstileなどのCAPTCHAを信頼性高く解決できるため、ウェブサイト間でのシームレスな自動データ抽出を可能にします。

web scraping
Logo of CapSolver

Sora Fujimoto

04-Feb-2026

リレヴァンス AI と キャップソルバー
Relevance AIにおけるreCAPTCHA v2のカプソルバー統合による解決方法

Relevance AIツールを構築し、リカプチャv2を解決するためCapSolverを使用します。APIを介してブラウザの自動化なしでフォームの送信を自動化します。

web scraping
Logo of CapSolver

Sora Fujimoto

03-Feb-2026

即時データスキャパーのツール:コードなしでウェブデータを素早く抽出する方法
即時データスカッパーのツール:コードなしでウェブデータを高速に抽出する方法

2026年用の最高のインスタントデータスラッパーのツールを発見してください。コードなしでウェブデータを迅速に抽出する方法を学びましょう。自動抽出用の最高の拡張機能とAPIを使用して。

web scraping
Logo of CapSolver

Nikolai Smirnov

28-Jan-2026

2026年のIPブロック:その仕組みと実用的な回避方法
2026年のIPブロック:仕組みと実用的な回避方法

2026年においてIPブロックを回避する方法を、当社の包括的なガイドを通じて学びましょう。現代のIPブロック技術や住宅プロキシーやCAPTCHAソルバーなどの実用的な解決策を発見してください。

web scraping
Logo of CapSolver

Sora Fujimoto

26-Jan-2026

ウェブスラビング ニュース記事
Pythonでウェブスクレイピングによるニュース記事の取得(2026年ガイド)

2026年にPythonでニュース記事のウェブスクリーピングをマスターする。reCAPTCHA v2/v3をCapSolverで解く方法を学び、スケーラブルなデータパイプラインを構築する。

web scraping
Logo of CapSolver

Sora Fujimoto

26-Jan-2026

Maxun と CapSolver のインテグレーション
MaxunでCapSolver統合を使用してCaptchaを解決する方法

CapSolverとMaxunを統合して実際のウェブスクレイピングを行うための実用的なガイド。reCAPTCHA、Cloudflare Turnstile、およびCAPTCHAで保護されたサイトを扱う方法を、事前認証とロボットワークフローを使用して学びましょう。

web scraping
Logo of CapSolver

Sora Fujimoto

21-Jan-2026