製品統合リソースドキュメント料金
今すぐ開始

© 2026 CapSolver. All rights reserved.

お問い合わせ

Slack: lola@capsolver.com

製品

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • ブラウザ拡張機能
  • その他多数のCAPTCHAタイプ

統合

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • パートナー
  • すべての統合を表示

リソース

  • 紹介プログラム
  • ドキュメント
  • APIリファレンス
  • ブログ
  • よくある質問
  • 用語集
  • ステータス

法務

  • 利用規約
  • プライバシーポリシー
  • 返金ポリシー
  • 個人情報を販売しない
ブログ/reCAPTCHA/Puppeteer を使用して PHP で Web スクレイピングを行う際の reCAPTCHA の解決方法
Aug28, 2024

Puppeteer を使用して PHP で Web スクレイピングを行う際の reCAPTCHA の解決方法

Sora Fujimoto

Sora Fujimoto

AI Solutions Architect

ウェブスクレイピング中にreCAPTCHAにぶつかってしまったことはありますか?私も経験があります。これらのCAPTCHAチャレンジは、単純なスクレイピングタスクを大きな障害に変える可能性があります。しかし心配しないでください。これらの障壁を突破するのに役立つ解決策があります。

このブログでは、強力なNode.jsライブラリであるPuppeteerを使用して、reCAPTCHAチャレンジに取り組む方法を紹介します。その後、PHPと統合して、ウェブスクレイピングタスクをよりスムーズかつ効率的にします。reCAPTCHAに対処して、シームレスにデータを手に入れる準備はできましたか?始めましょう!

ウェブスクレイピングにおけるreCAPTCHAとは

コンテキストを与えるために、reCAPTCHAは、ウェブサイトを自動化された悪用から保護するために設計されたシステムです。ユーザーは、画像内のオブジェクトを特定したり、チェックボックスをオンにするなど、人間にとっては簡単だがボットにとっては難しいタスクを完了するよう求められます。これらのチャレンジはセキュリティに役立ちますが、ウェブスクレイピングにとっては厄介なものとなる可能性があります。以下は、遭遇する可能性のある基本的なタイプです。

  • reCAPTCHA v2: このバージョンは、「私はロボットではありません」チェックボックスと画像ベースのチャレンジで知られています。ユーザーは、画像をクリックしたり、特定のアクションを実行したりして、人間であることを証明する必要がある場合があります。これは、実際のユーザーとボットを区別する上で効果的です。
  • reCAPTCHA v3: このバージョンはバックグラウンドで動作します。ユーザーの操作を要求するのではなく、サイト全体のユーザーの行動を分析して、リスクスコアを割り当てます。このスコアは、ウェブサイトが、ユーザーがボットである可能性に基づいて、アクセスを許可するかブロックするかを判断するのに役立ちます。
  • reCAPTCHA Enterprise: より高度なセキュリティ要件を持つ企業向けに、reCAPTCHA Enterprise は、洗練された脅威に対する高度な保護を提供します。強化されたリスク分析、カスタマイズ可能なスコア付け、およびスケーラビリティの向上などの機能を備えており、機密情報や重要な操作を扱う組織に適しています。

厄介なCAPTCHAを完全に解決できないことが何度も繰り返されて困っていますか?

CapsolverのAI搭載の自動Webアンブロックテクノロジーで、シームレスな自動CAPTCHA解決を実現しましょう!

トップレベルのCAPTCHAソリューションのためのボーナスコードを獲得しましょう;CapSolver: WEBS. コードを利用すると、チャージごとに5%のボーナスが追加で付与されます。無制限

これらのバージョンを理解することで、reCAPTCHAの課題を効果的に克服できます。PuppeteerとCapSolverを使用して、これらの課題に対処し、Webスクレイピングの取り組みを効率化する方法について詳しく見ていきましょう。

CapSolverがreCAPTCHAの解決をどのように支援するか

CapSolverは、reCAPTCHAを含むCAPTCHAの課題に対処するための強力なソリューションです。CapSolverをワークフローに統合して、CAPTCHAの解決を簡素化する方法を以下に示します。

  1. サイトキーを取得する
    • ブラウザの要求ログで、/recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mfのような要求を検索します。k=パラメータは、必要なサイトキーです。
    • 間違ったキーを指定した場合、次のようなエラーメッセージが表示されます。
      Copy
      Solve failed! response: {"errorId":1,"errorCode":"ERROR_INVALID_TASK_DATA","errorDescription":"Invalid site key","taskId":"1cd1e687-96dd-4f14-b8ef-18b5d144d9b8","status":"failed"}
  • 正しいreCAPTCHAバージョン(V2またはV3)を使用していないか、ターゲットサイトの種類とAPIリクエストの種類が一致しない場合、次のようなエラーが表示されることがあります。
    Copy
    Solve failed! response: {"errorId":1,"errorCode":"ERROR_CAPTCHA_SOLVE_FAILED","errorDescription":"Failed to solve the captcha: 1001","taskId":"da450cbc-ff9d-439d-908a-77e7eb8852dd","status":"failed"}
  1. 環境設定

    • 必要なパッケージをインストールします。
      bash Copy
      npm install axios puppeteer-core
  2. 統合コードの記述

php Copy
<?php

require_once 'vendor/autoload.php';
use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;
use GuzzleHttp\Client;

$puppeteer = new Puppeteer;
$browser = $puppeteer->launch();

// TODO: 構成を設定する
$api_key = "YOUR_API_KEY"; // CapSolverのAPIキー
$site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"; // ターゲットサイトのサイトキー
$site_url = "https://www.google.com/recaptcha/api2/demo"; // ターゲットサイトのページURL

function capsolver()
{
    global $api_key, $site_key, $site_url;
    $client = new Client();
    $payload = [
        'clientKey' => $api_key,
        'task' => [
            'type' => 'ReCaptchaV2TaskProxyLess',
            'websiteKey' => $site_key,
            'websiteURL' => $site_url,
        ]
    ];

    try {
        $response = $client->post("https://api.capsolver.com/createTask", [
            'json' => $payload
        ]);
        $data = json_decode($response->getBody(), true);
        $task_id = $data['taskId'] ?? null;
        if (!$task_id) {
            echo "タスクの作成に失敗しました: " . json_encode($data) . PHP_EOL;
            return null;
        }
        echo "taskIdを取得しました: " . $task_id . PHP_EOL;

        while (true) {
            sleep(1);

            $getResultPayload = [
                'clientKey' => $api_key,
                'taskId' => $task_id
            ];
            $resp = $client->post("https://api.capsolver.com/getTaskResult", [


```php
<?php

function capsolver() {
    global $api_key, $site_key;

    try {
        $client = new \GuzzleHttp\Client();
        $resp = $client->post('https://api.capsolver.com/createTask', [
            'json' => [
                'clientKey' => $api_key,
                'task' => [
                    'type' => 'recaptchaV2',
                    'websiteURL' => 'https://www.google.com/recaptcha/api2/demo',
                    'websiteKey' => $site_key,
                    'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
                    'proxy' => 'http://127.0.0.1:8118', // Replace with your own proxy
                    'proxyType' => 'socks5' // Replace with your proxy type
                ]
            ]
        ]);
        $data = json_decode($resp->getBody(), true);
        $taskId = $data['taskId'];

        while (true) {
            $resp = $client->post('https://api.capsolver.com/getTaskResult', [
                'json' => [
                    'clientKey' => $api_key,
                    'taskId' => $taskId
                ]
            ]);
            $data = json_decode($resp->getBody(), true);
            $status = $data['status'] ?? null;

            if ($status === "ready") {
                return $data['solution']['gRecaptchaResponse'];
            }
            if ($status === "failed" || isset($data['errorId'])) {
                echo "Solve failed! response: " . json_encode($data) . PHP_EOL;
                return null;
            }
        }
    } catch (\Exception $e) {
        echo "Error: " . $e->getMessage() . PHP_EOL;
        return null;
    }
}

function reqSite() {
    global $site_url, $browser;
    $token = capsolver();
    if ($token === null) {
        return;
    }
    echo $token . PHP_EOL;

    $page = $browser->newPage();
    $page->goto($site_url);
    $evaluate_script = <<<EOD
        document.getElementById("g-recaptcha-response").value="$token";
        onSuccess("$token");
    EOD;
    $page->evaluate(JsFunction::createWithBody($evaluate_script));
    $product_element = $page->querySelector('#recaptcha-demo-submit');
    if ($product_element instanceof ElementHandle) {
        $product_element->click();
    } else {
        echo 'Element not found.' . PHP_EOL;
    }
}

reqSite();

reCAPTCHA v2、v3、またはEnterpriseのいずれを扱っているかに関わらず、CapSolverをPuppeteerと統合することで、ワークフローを簡素化し、スクレイピング効率を向上させることができます。問題が発生した場合や追加のサポートが必要な場合は、CapSolverとPuppeteerの両方が包括的なドキュメントとサポートを提供しており、あらゆる課題を克服するお手伝いをします。

もっと見る

reCAPTCHAApr 16, 2026

reCAPTCHA 無効なサイトキーまたはトークン? 原因と解決方法のガイド

「reCAPTCHA 無効なサイトキー」や「無効なreCAPTCHAトークン」のエラーに直面していますか?一般的な原因、ステップバイステップの修正手順、トラブルシューティングのヒントを確認してください。reCAPTCHAの検証失敗の問題を解決する。reCAPTCHAの検証失敗を修正する方法を学びましょう。もう一度試してください。

Aloísio Vítor
Aloísio Vítor
reCAPTCHAMar 25, 2026

reCAPTCHA v2を解く方法 PythonとAPI

PythonとAPIを使用してreCAPTCHA v2を解決する方法を学びましょう。この包括的なガイドでは、プロキシとプロキシレスな方法をカバーし、自動化に使用可能な本番環境対応のコードを提供しています。

目次

Rajinder Singh
Rajinder Singh
reCAPTCHAFeb 27, 2026

AIベンチマーキングプラットフォーム向けにreCAPTCHAの解決を自動化する方法

AIのベンチマーキングのためにreCAPTCHA v2とv3を自動化する方法を学んでください。CapSolverを使用して、データ収集を効率化し、高パフォーマンスなAIパイプラインを維持してください。

Nikolai Smirnov
Nikolai Smirnov
reCAPTCHAFeb 12, 2026

ウェブスクレイピングでの一般的なreCAPTCHAの問題の解決方法

ウェブスクレイピングにおける一般的なreCAPTCHAの問題の修正方法を学びましょう。reCAPTCHA v2およびv3の実用的な解決策を発見し、シームレスなデータ収集ワークフローを維持してください。

Emma Foster
Emma Foster