CAPSOLVER
ブログ
PlaywrightでCapSolverを統合する方法|完全ガイド2025

PlaywrightでCapSolverを統合する方法|完全ガイド2025

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

04-Sep-2025

Playwrightとは?

Playwrightは、Microsoftが開発した最新のブラウザ自動化テストフレームワークです。Chromium、Firefox、WebKit(Chrome、Firefox、Safariに対応)の自動化をサポートしています。強力なAPIにより、ブラウザ制御、要素選択、フォーム操作、ネットワーク傍受などを可能にし、ウェブページとの深いインタラクションを必要とするタスクに最適です。

Playwrightの主要機能

あらゆるブラウザ、あらゆるプラットフォーム、1つのAPI

  • クロスブラウザ: Playwrightは、Chromium、WebKit、Firefoxなど、すべての最新のレンダリングエンジンをサポートしています。
  • クロスプラットフォーム: Windows、Linux、macOSでローカルまたはCI環境で、ヘッドレスモードまたはヘッド付きモードでテストを実行できます。
  • クロス言語: TypeScript、JavaScript、Python、.NET、JavaでPlaywright APIを使用できます。
  • モバイルウェブのテスト: Android向けGoogle ChromeとモバイルSafariをネイティブにエミュレートします。デスクトップとクラウドで同じレンダリングエンジンが動作します。

代表的なユースケース

  • 動的コンテンツのスクレイピング: JavaScriptでレンダリングされたデータの抽出。
  • 複雑なインタラクションの処理: ログインや複数ステップのワークフローを必要とするページでデータにアクセスする場合に役立ちます。
  • SPAアプリからのデータ抽出: VueやReactなどのフレームワークで構築されたページのクロール。
  • 自動テスト: データを収集しながらページの機能を検証します。
  • ヘッドレスモードの自動化: GUIなしですべてのアクションを実行し、サーバー環境に適しています。

Playwrightの基本的な使用方法

Node.jsでのPlaywrightの使用:

bash Copy
npm i playwright  
npx playwright install  # すべてのブラウザ(Chromium、Firefox、WebKit)をインストールします

例:CapSolverからすべてのブログタイトルを取得する

以下の例では、Playwrightを使用してCapSolverブログに移動し、ページからすべての<h5>ブログ投稿タイトルを取得します。

javascript Copy
const { chromium } = require('playwright');

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
    });

    const [page] = context.pages();
    await page.goto('https://www.capsolver.com/blog/All');

    const h5Titles = await page.evaluate(() => {
        const headings = Array.from(document.querySelectorAll('h5'));
        return headings.map(heading => heading.textContent.trim());
    });

    console.log(h5Titles);
    await context.close();
})();

CapSolver拡張機能とPlaywrightの統合方法

Playwrightは、通常のブラウザと同様にブラウザ拡張機能をロードするのに十分強力です。

  1. 公式GitHubから最新のCapSolver拡張機能ZIPをダウンロードして解凍します。
  2. --disable-extensions-except--load-extensionを使用して、Playwrightの起動引数に拡張機能のパスを指定します。
javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/capsolver extension';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
        ],
    });
    
    const [page] = context.pages();
    await page.goto('https://www.capsolver.com/blog/All');
    await browser.close();
})();

CapSolver拡張機能を使用したreCAPTCHA v2の解決

reCAPTCHA v2/v3Cloudflare TurnstileAWS WAFなどのCAPTCHAの種類は、数千ものウェブサイトで広く使用されています。これらのCAPTCHAは人気があるにもかかわらず、通常は一貫性があり、検出可能なDOM構造を持っています。そこでCapSolver拡張機能が登場します。これは、手動操作を行うことなく、これらのCAPTCHAを自動的に検出して解決します。

reCAPTCHA v2を例に、PlaywrightでCapSolver拡張機能を使用して解決する方法を示します。
注: 特に指定がない限り、以下の例ではクリックモード(/assets/config.js -> reCaptchaMode: 'click')を使用します。

⚠️ 拡張機能のzipファイルを解凍し、/assets/config.jsapiKeyを設定することを忘れないでください。

javascript Copy
const { chromium } = require('playwright');

// ステップ1:GitHubから拡張機能をダウンロードします: https://github.com/capsolver/capsolver-browser-extension/releases
// ステップ2:拡張機能ファイルを解凍し、/assets/config.jsでapiKeyを設定します
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    // 拡張機能が自動的にreCAPTCHAを検出して解決します。
    await page.waitForTimeout(15000); // 解決を待ちます
    await page.click('button[type="submit"]');
    await page.waitForTimeout(5000);
    await context.close();
})();

⚠️ CapSolver拡張機能は、多くの便利な設定オプションもサポートしています。以下は一般的な例です(注:すべての設定は/assets/config.jsで設定されます)。

設定オプション:solvedCallback

前のコードでは、ページの読み込み後に15秒間待機してから送信ボタンをクリックしていました。この遅延は、CapSolver拡張機能がreCAPTCHAを自動的に解決するのに十分な時間を与えるためのものでした。しかし、このアプローチは理想的ではありません。CAPTCHAがはるかに早く解決される場合もあれば、ネットワークの状態が悪いと15秒以上かかる場合もあります。

そこでsolvedCallbackが登場します。これは、CAPTCHAが解決されたらコールバックをトリガーし、検証が完了したことを通知する、より良いソリューションを提供します。/assets/config.jssolvedCallbackを設定し、カスタム関数名を定義できます(デフォルトはcaptchaSolvedCallbackです)。次に、Playwrightでpage.exposeFunctionを使用して、この関数をブラウザコンテキスト内で公開します。

このアプローチを使用して、前のコードを改善しましょう。

javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');

        const iframe = await page.$('iframe[src*="recaptcha"]');
        if (iframe) {
            const frame = await iframe.contentFrame();
            const finished = await frame.evaluate(() => {
                const element = document.querySelector('.recaptcha-checkbox-border');
                return element && window.getComputedStyle(element).display === 'none';
            });

            if (finished) {
                console.log('Verification completed!');
                await page.click('button[type="submit"]');
                await page.waitForTimeout(3000);
                await context.close();
            } else {
                console.log('Verification not complete. Retrying...');
            }
        }
    });
})();

reCAPTCHA v2では、複数の画像チャレンジが表示される場合があります。そのため、各チャレンジの後、「私はロボットではありません」チェックボックスがチェックされているかどうかを確認します。チェックボックスがなくなっていれば、検証が完了したと見なされます。

設定オプション:manualSolving

これまでの例では、ページの読み込みと同時にCAPTCHAの解決が開始されました。しかし、場合によっては、CAPTCHAの解決をトリガーする前に、ユーザー名/パスワードを入力するなど、他のタスクを実行する必要がある場合があります。早すぎると、トークンが期限切れになる可能性があります。

これを処理するために、/assets/config.jsmanualSolving: trueを設定します。これにより、CAPTCHAの解決プロセスを手動でトリガーできます。

解決をトリガーするには2つの方法があります。

  1. 拡張機能のCapSolverボタンをクリックすることをシミュレートします。
  2. window.postMessage({ type: 'capsolverSolve' });を実行します。

⚠️ 注:この機能は、v1.16.0より新しいバージョンの拡張機能でのみサポートされています!

例:

javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    // 資格情報の入力シミュレート
    await page.evaluate(() => {
        const inputA = document.querySelector('input[name="ex-a"]');
        inputA.value = 'username';
        const inputB = document.querySelector('input[name="ex-b"]');
        inputB.value = 'password';
    });

    // その他の遅延またはユーザーアクティビティのシミュレート
    for (let i = 1; i <= 5; i++) {
        await page.waitForTimeout(1000);
        console.log(`Waited ${i} seconds...`);
    }

    console.log('Start solving CAPTCHA...');

    // 方法1:CapSolverボタンのクリックをシミュレートします
    await page.evaluate(() => {
        document.querySelector('#capsolver-solver-tip-button').click();
    });

    // 方法2:postMessageを使用してトリガーします
    // await page.evaluate(() => {
    //     window.postMessage({ type: 'capsolverSolve' });
    // });

    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');

        const iframe = await page.$('iframe[src*="recaptcha"]');
        if (iframe) {
            const frame = await iframe.contentFrame();
            const finished = await frame.evaluate(() => {
                const element = document.querySelector('.recaptcha-checkbox-border');
                return element && window.getComputedStyle(element).display === 'none';
            });

            if (finished) {
                console.log('Verification completed!');
                await page.click('button[type="submit"]');
                await page.waitForTimeout(3000);
                await context.close();
            } else {
                console.log('Verification not complete. Try again.');
            }
        }
    });
})();

設定オプション:reCaptchaMode

reCaptchaMode設定は、「click」モードと「token」モードの2つのモードをサポートしています。

  • clickモードは、人間のインタラクションをシミュレートします。画像チャレンジをクリックして解決します。
  • tokenモードは、UIインタラクションなしでCapSolver APIを使用して解決トークンを取得します。

clickモードで複数の画像選択ラウンドが発生している場合、ブラウザのフィンガープリントスコアが低いことが原因である可能性があります。信頼性を向上させるために、tokenモードへの切り替えをお勧めします。

設定オプション:showSolveButton

showSolveButtonfalseに設定すると(デフォルトはtrue)、CapSolverボタンはページに表示されなくなります。ただし、通常のCAPTCHA解決機能には影響しません。

設定オプション:useProxy

useProxy: trueを設定した後、proxyTypehostOrIpportproxyLoginproxyPasswordなどのパラメータを指定できます。この設定により、カスタムプロキシを使用してCAPTCHAを解決します。独自の代理サーバーを使用する必要があるのは、通常、次の状況です。

  1. プロキシの方が品質が良い(例:プロキシを使用して生成されたreCAPTCHAトークンのスコアが高い)場合、または解決速度が速い場合。
  2. CAPTCHAを解決するために使用されるIPアドレスが、トークンを送信するために使用されるIPアドレスと同じである必要がある場合。

上記は、一般的に使用される設定オプションの一部です。実際のニーズに合わせて他の設定を調整できます。ご不明な点がございましたら、カスタマーサポートにお問い合わせください。

CapSolver拡張機能を使用したImageToText CAPTCHAの解決

reCAPTCHA、Cloudflare Turnstile、AWS WAF、GeeTestなどのサードパーティ製CAPTCHAとは異なり、画像から文字または数字を認識する必要があるCAPTCHAの種類があります。これらをImageToText CAPTCHAと呼びます。通常、次のようになります。

ImageToTextは、ウェブサイト管理者自身によって実装されたCAPTCHAです。サードパーティ製のCAPTCHAとは異なり、ImageToText CAPTCHAはウェブサイトの所有者によってカスタム作成されます。これらのCAPTCHAは、さまざまなウェブサイトやページ間で配置が異なるため、CapSolver拡張機能は、どの画像がCAPTCHAであるかを自動的に検出できません。したがって、コードでCapSolver拡張機能に明示的に指示する必要があります。方法は次のとおりです。

  1. CAPTCHAの画像要素にcapsolver-image-to-text-source属性を値0で追加します。
  2. 結果を入力する入力フィールドにcapsolver-image-to-text-result属性を値0で追加します。

これらの属性(capsolver-image-to-text-sourcecapsolver-image-to-text-result)は、/assets/config.jsで、それぞれtextCaptchaSourceAttributetextCaptchaResultAttributeフィールドを使用して設定できます。

**https://captcha.com/demos/features/captcha-demo.aspx**サイトを使用して例を見てみましょう。

まず、ページソースを検査して、CAPTCHA画像要素と結果入力フィールドを見つけます。この場合:

  • CAPTCHA画像要素ID:demoCaptcha_CaptchaImage
  • 結果の入力フィールドID:captchaCode
    (以下のスクリーンショット)

さて、Playwrightを使ってこれらの要素を適切にマークすることで、このCAPTCHAの解決を自動化しましょう。

javascript Copy
const { chromium } = require('playwright');

// ステップ1:GitHubから拡張機能を取得します(https://github.com/capsolver/capsolver-browser-extension/releases)
// ステップ2:拡張機能のzipファイルを解凍し、/assets/config.jsでapiKeyを設定します
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
    await page.waitForSelector('#demoCaptcha_CaptchaImage');

    // CapSolver拡張機能にCAPTCHA画像の場所を伝えます
    await page.evaluate(() => {
        const imgElement = document.querySelector('#demoCaptcha_CaptchaImage');
        if (imgElement) {
            imgElement.setAttribute('capsolver-image-to-text-source', '0');
        }
    });

    // CapSolver拡張機能に認識結果を入力する場所を伝えます
    await page.evaluate(() => {
        const resultElement = document.querySelector('#captchaCode');
        if (resultElement) {
            resultElement.setAttribute('capsolver-image-to-text-result', '0');
        }
    });

    // CAPTCHAが解決されるのを待ち、フォームを送信します
    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');
        await page.waitForTimeout(3000);
        await page.click('#validateCaptchaButton');
        await page.waitForTimeout(3000);
        await context.close();
    });
})();

結果:

(画像)

CapSolver APIとPlaywrightの統合方法

CapSolver拡張機能を使用すると便利で迅速ですが、経験豊富な開発者であれば、API統合の使用を強くお勧めします。拡張機能ベースの方法と比較して、APIアプローチにはいくつかの重要な利点があります。

  1. よりカスタマイズ可能なパラメーター - ほぼすべてのCAPTCHAシナリオに最適なリクエストを微調整できます。
  2. より優れた制御 - CAPTCHAをいつどのように解決するかを正確に決定できます。
  3. より詳細なエラーメッセージ - これにより、開発者はターゲットを絞った最適化を実行できます。

コードデモに進む前に、CapSolver APIの使用方法の概要を簡単に説明します。

タスクを作成するには、CapSolverにJSONオブジェクトを送信する必要があります。このJSONには、clientKeywebsiteURLwebsiteKey、その他のデータが含まれています。これらのフィールドは、CAPTCHAの種類とWebサイトによって異なります。
👉 詳細については、ドキュメントを参照してください:documentation

CapSolver APIを使用したreCAPTCHA v2の解決

reCAPTCHA v2を解決する前に、ここにあるドキュメントをお読みください。
📖 ReCaptchaV2

このガイドでは、タスクを作成する際に含める必要があるJSONパラメーターについて説明しています。
さらに、CapSolver拡張機能を使用して、APIリクエストのJSONデータをすばやく生成できます。
ヘルプについては、このブログを参照してください。
🔗 JSONデータの取得


次の例を見てみましょう。
🔗 https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php

このページのタスクを作成するために必要なJSONは次のとおりです。

json Copy
{
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
    "websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}

ドキュメントには、APIをJavaScriptコードサンプルで使用する方法も記載されています。

(画像)

Playwrightへの統合:

javascript Copy
const { chromium } = require('playwright');
const axios = require('axios');

// APIキーに置き換えます
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ReCaptchaV2TaskProxyLess';
const site_key = '6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9';
const site_url = 'https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php';

async function capSolver() {
    const payload = {
        clientKey: api_key,
        task: {
            type: captcha_type,
            websiteKey: site_key,
            websiteURL: site_url
        }
    };

    try {
        const res = await axios.post('https://api.capsolver.com/createTask', payload);
        const task_id = res.data.taskId;
        if (!task_id) {
            console.log('Failed to create task:', res.data);
            return;
        }
        console.log('Got taskId:', task_id);

        while (true) {
            await new Promise(resolve => setTimeout(resolve, 1000)); // 1秒間遅延

            const getResultPayload = { clientKey: api_key, taskId: task_id };
            const resp = await axios.post('https://api.capsolver.com/getTaskResult', getResultPayload);
            const status = resp.data.status;

            if (status === 'ready') {
                return resp.data.solution.gRecaptchaResponse;
            }
            if (status === 'failed' || resp.data.errorId) {
                console.log('Solve failed! response:', resp.data);
                return;
            }
        }
    } catch (error) {
        console.error('Error:', error);
    }
}

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: ['--lang=en-US'],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    const token = await capSolver();
    console.log("Token:", token);

    // トークン値の設定
    await page.evaluate((token) => {
        const textarea = document.getElementById('g-recaptcha-response');
        if (textarea) {
            textarea.value = token;
        }
    }, token);

    await page.click('button[type="submit"]');
    await page.waitForTimeout(5000);
    await context.close();
})();

CapSolver APIを使用したImageToTextの解決

次の画像に示すように、CAPTCHA画像要素のIDがdemoCaptcha_CaptchaImage、結果入力要素のIDがcaptchaCodeであるhttps://captcha.com/demos/features/captcha-demo.aspxの例を引き続き使用します。

(画像)

ImageToTextTaskの場合、CAPTCHA画像のbase64値をCapSolverに渡す必要があります。コード例は次のとおりです。

javascript Copy
const { chromium } = require('playwright');
const axios = require('axios');

// APIキーに置き換えます
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ImageToTextTask';
const site_url = 'https://captcha.com/demos/features/captcha-demo.aspx';

async function capSolver(base64Image) {
    const payload = {
        clientKey: api_key,
        task: {
            type: captcha_type,
            websiteURL: site_url,
            body: base64Image,
        }
    };

    try {
        const res = await axios.post('https://api.capsolver.com/createTask', payload);

        const status = res.data.status;
        if (status === 'ready') {
            return res.data.solution.text;
        }
        if (status === 'failed' || res.data.errorId) {
            console.log('Solve failed! response:', res.data);
            return "";
        }
    } catch (error) {
        console.error('Error:', error);
    }
}

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: ['--lang=en-US'],
    });

    const [page] = context.pages();
    await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
    await page.waitForSelector('#demoCaptcha_CaptchaImage');

    // CAPTCHA画像のbase64値を取得します
    const captchaImage = await page.evaluate(() => {
        const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
        return img ? img.getAttribute('src') : null;
    });
    const base64Image = captchaImage.split(',')[1];

    const text = await capSolver(base64Image);
    console.log("Text:", text);

    // 解決されたCAPTCHAテキストの設定
    await page.evaluate((text) => {
        document.getElementById('captchaCode').value = text;
    }, text);

    await page.click('#validateCaptchaButton');
    await page.waitForTimeout(5000);
    await context.close();
})();

さらに、一部の特殊なImageToTextタイプでは、精度を向上させるためにさまざまなモデルを指定できます。詳細については、ドキュメントを参照してください。
https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/

(画像)

役立つリファレンス

CapSolver拡張機能を紹介するデモビデオ:

さらに、CapSolverは開発者収益分配プログラムを提供しており、開発者やパートナーはCapSolverソリューションを統合または宣伝することで手数料を獲得できます。これは、他の人が効率的にCAPTCHAを解決するのを支援しながら、自分の仕事を収益化するための優れた方法です。詳細については、以下をご覧ください。
CapSolver開発者プラン

まとめ

Playwrightの堅牢な機能とCapSolverのCAPTCHA処理能力を組み合わせることで、ウェブ自動化のための包括的なソリューションが提供されます。利便性のためにCapSolver拡張機能を使用する場合でも、より高度な制御のためにAPIを使用する場合でも、この統合により複雑なタスクが合理化され、自動化ワークフローが強化されます。CAPTCHAの解決だけでなく、CapSolverは開発者収益分配プログラムも提供していることを忘れないでください。これは、ソリューションの統合または宣伝によって手数料を獲得するための優れた機会です。

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

もっと見る

クラウドフレア エラー 1006、1007、1008
クラウドフレア エラー 1006、1007、1008 解決の方法 | 修正方法

Cloudflareのエラー1006、1007、または1008に苦しんでいますか?これらのアクセス拒否を解決し、ウェブクローリング体験を向上させる実用的な解決策を学びましょう。

Cloudflare
Logo of CapSolver

Sora Fujimoto

05-Dec-2025

AI-LLM: リスク管理の未来のソリューション 画像認識およびCAPTCHAの解決
AI-LLM: リスクコントロールのための画像認識とCAPTCHA解決の未来のソリューション

LLMsがグラフィカルCAPTCHAの解決をどのように変革するかの詳細な探求:ゼロショット推論とCNNの精度を融合した現代のリスク管理へのアプローチ

web scraping
Logo of CapSolver

Sora Fujimoto

05-Dec-2025

Webスクレイピング中にCAPTCHAを解く方法:ScraplingとCapSolverを使って
ScraplingとCapSolverを用いたウェブスクラッピング時のキャプチャの解き方

Scrapling + CapSolver は、ReCaptcha v2/v3 および Cloudflare Turnstile のバイパスを備えた自動スクリーピングを可能にします。

web scraping
Logo of CapSolver

Sora Fujimoto

05-Dec-2025

SeleniumでUser-Agentを変更する
SeleniumでのUser-Agentの変更 | ステップとベストプラクティス

SeleniumでUser Agentを変更することは、多くのウェブスクレイピングタスクにおいて重要なステップです。これは自動化スクリプトを通常のブラウザのように見せかけるために役立ちます...

The other captcha
Logo of CapSolver

Sora Fujimoto

05-Dec-2025

Cloudflare Turnstileを解決するためには`action`が必要かどうかを識別する方法 – CapSolver拡張機能を使用して
CapSolver拡張機能を使用してCloudflare Turnstileを解決する際に`action`が必要かどうかを確認する方法

クラウドフレア・ターニスティルの効果的なCAPTCHAの解決方法を学びます。Capsolverのツールとテクニックを使用するためのステップバイステップのガイドに従ってください。

Cloudflare
Logo of CapSolver

Nikolai Smirnov

05-Dec-2025

9プロキシ
9Proxyの力の発見: 包括的なレビュー

本記事では、9proxyとは何かおよび彼らが提供するサービスについてご紹介します。

Partners
Logo of CapSolver

Anh Tuan

04-Dec-2025