
Nikolai Smirnov
Software Development Lead

ブラウザの操作を自動化する際には、Puppeteerなどのツールを使用する場合、CAPTCHAチャレンジを処理する必要があることがあります。このガイドでは、Puppeteer JSとCapSolverブラウザ拡張機能を組み合わせて、reCAPTCHA v2を効率的に解決する方法をステップバイステップで説明します。このチュートリアルではreCAPTCHA v2に焦点を当てていますが、CapSolverがサポートする他のCAPTCHAタイプにも同様のアプローチを適用できます。
この記事の最後まで読み進めると、必要な依存関係のインストール方法、CapSolver拡張機能の構成方法、およびPuppeteer制御のブラウザセッション内で直接CAPTCHA解決をトリガーする方法がわかります。
⚠️ このブログでは、CapSolver拡張機能とPuppeteer JSを組み合わせてreCAPTCHA v2を解決する方法を説明します。ただし、このアプローチは他のCAPTCHAタイプにも適用可能です。
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

拡張機能のアーカイブをダウンロードし、プロジェクトのルートディレクトリにある./CapSolver.Browser.Extensionフォルダに展開してください。
拡張機能には、自動CAPTCHA解決、プロキシサポート、細かい制御オプションなど、多くの設定があります。これらの設定はファイル./assets/config.jsonにあります。
これらの設定は以下の通りです:
{
"apiKey": "YourApiKey",
"useCapsolver": true,
"useProxy": false,
"proxyType": "http",
"hostOrIp": "",
"port": "",
"proxyLogin": "",
"proxyPassword": "",
"enabledForBlacklistControl": false,
"blackUrlList": [],
"enabledForRecaptcha": true,
"enabledForRecaptchaV3": true,
"enabledForcaptcha": true,
"reCaptchaMode": "token",
"captchaMode": "click",
"reCaptchaDelayTime": 0,
"captchaDelayTime": 0,
"reCaptchaRepeatTimes": 10,
"reCaptcha3RepeatTimes": 10,
"captchaRepeatTimes": 10
}
拡張機能の設定ファイル./assets/config.jsonにAPIキーを入力してください。このキーはapiKeyフィールドに割り当てる必要があります。CapSolverダッシュボードから直接APIキーをコピーできます。
例:
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"
この例では、reCaptchaModeがtokenに設定されています。clickモードも利用可能ですが、reCAPTCHAでは一般的にtokenモードが推奨されます。
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer');
(async () => {
const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
puppeteer.use(StealthPlugin())
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
executablePath: executablePath()
});
const [page] = await browser.pages()
})();
次に、https://www.google.com/recaptcha/api2/demoのページを開き、CAPTCHAをCapSolverに送信します。
page.goto()を使用してターゲットページに移動します。CAPTCHAは自動的または手動で解決できます。
この例では、CAPTCHAチェックボックスを待ってクリックすることで手動でトリガーします。
await page.goto('https://site.example')
// CSSセレクタ "#recaptcha-anchor-label" の要素を待機中
await page.waitForSelector('#recaptcha-anchor-label')
// 要素をクリック
await page.click('#recaptcha-anchor-label')
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer');
(async () => {
const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
puppeteer.use(StealthPlugin())
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
executablePath: executablePath()
});
const [page] = await browser.pages()
// ページを開く
await page.goto('https://site.example')
// CSSセレクタ "#recaptcha-anchor-label" の要素を待機中
await page.waitForSelector('#recaptcha-anchor-label')
// 要素をクリック
await page.click('#recaptcha-anchor-label')
})();
PuppeteerとCapSolverブラウザ拡張機能を使用してreCAPTCHA v2を成功裏に解決しました。この設定は、実際のブラウザ環境内でCAPTCHAチャレンジを直接処理するための柔軟でスケーラブルな方法を提供します。拡張機能の構成を調整することで、CapSolverがサポートする他のCAPTCHAタイプにも同じワークフローを再利用でき、テスト、自動化、大規模なブラウザベースのタスクに適しています。
1. ヘッドレスモードでこの方法を使用できますか?
CapSolverブラウザ拡張機能は可視ブラウザ環境を必要とします。そのため、拡張機能ベースのアプローチを使用する際はheadless: falseが推奨されます。
2. reCAPTCHA v2以外のCAPTCHAタイプでこの設定は動作しますか?
はい。CapSolver拡張機能は複数のCAPTCHAタイプをサポートしています。config.jsonファイルで特定のCAPTCHAソルバーを有効または無効にし、ワークフローをそれに合わせて調整できます。
3. CapSolver拡張機能を使用する際、プロキシは必要ですか?
プロキシはオプションです。拡張機能はプロキシ設定をサポートしていますが、多くのユースケースでは必要ありません。プロキシの使用は、ターゲットサイトや自動化の要件によって異なります。
4. reCAPTCHAのtokenモードとclickモードの違いは何ですか?
tokenモードはCAPTCHAの解決をプログラム的に取得し、自動化において一般的に安定しています。clickモードはCAPTCHAチェックボックスのユーザー操作をシミュレートします。
5. この設定は本番環境で使用できますか?
はい。適切な構成、エラー処理、スケーリングの考慮を施せば、このアプローチは本番運用向けのブラウザ自動化ワークフローに統合できます。
「reCAPTCHA 無効なサイトキー」や「無効なreCAPTCHAトークン」のエラーに直面していますか?一般的な原因、ステップバイステップの修正手順、トラブルシューティングのヒントを確認してください。reCAPTCHAの検証失敗の問題を解決する。reCAPTCHAの検証失敗を修正する方法を学びましょう。もう一度試してください。

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