CapSolverとSeleniumを統合する方法|完全ガイド2025

Sora Fujimoto
AI Solutions Architect
04-Sep-2025

Seleniumとは?
Seleniumは、主にウェブアプリケーションの自動化に使用されるオープンソースの自動テストツールです。ウェブスクレイピングやウェブサイトのインタラクションの自動化にも一般的に使用されます。Seleniumは、クリック、タイピング、スクロール、ページの切り替えなど、ブラウザでの様々なユーザー行動をシミュレートできます。2004年にJason Hugginsによって開発され、現在はSeleniumプロジェクトチームによってメンテナンスされています。Seleniumは、Python、Java、C#、Ruby、JavaScriptなど、複数のプログラミング言語をサポートしています。
Seleniumは、以下のコアコンポーネントで構成されています。
-
Selenium WebDriver(最も一般的に使用される)
- ブラウザをネイティブに制禦し、Chrome、Firefox、Edge、Safariなどの主要なブラウザをサポートします。
- クリック、タイピング、スクロール、タブの切り替えなど、様々なブラウザアクションをシミュレートできます。
- 各ブラウザには、
chromedriver
やgeckodriver
などの対応するドライバがあります。
-
Selenium IDE
- テストスクリプトの記録と再生を可能にするブラウザ拡張機能(Chrome/Firefox用)。テストの初心者にとって理想的です。
-
Selenium Grid
- 複數のブラウザとマシンでテストグリッドを形成することにより、分散テストを可能にし、スクリプトの並列実行を許可します。
一般的なユースケース
- 動的コンテンツのスクレイピング: JavaScriptレンダリングによって生成されたデータの抽出。
- 複雑なインタラクションの処理: ログインや複数ステップのアクションが必要なサイトのスクレイピングに適しています。
- SPAアプリケーションからのデータ抽出: VueやReactなどのフレームワークで構築されたページのクロール。
- 自動テスト: データを収集しながら同時にページの機能を検証します。
- ヘッドレスモードでの作業: サーバーで実行するのに理想的な、グラフィカルインターフェースなしですべての操作を実行します。
Seleniumの基本的な使用方法
PythonでSeleniumを使用するには:
bash
pip install selenium
ChromeでSeleniumを使用するには、使用しているChromeのバージョンに一致するchromedriver
をGithubからダウンロードします。
例:CapSolverのブログからすべてのブログ投稿のタイトルを取得するためにSeleniumを使用する
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# chromedriverのパスを指定(PATHに追加済みなら省略可)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
CapSolver拡張機能をSeleniumと統合する方法
Seleniumは、通常のブラウザと同様にブラウザ拡張機能のロードをサポートする強力なツールです。
-
公式CapSolver GitHubから最新の拡張機能の
.zip
パッケージをダウンロードして解凍します。
? https://github.com/capsolver/capsolver-browser-extension/releases -
Seleniumの起動オプションで、
load-extension
引數を使用して拡張機能のパスを指定します。
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("load-extension=/path/to/capSolver extension")
# chromedriverのパスを指定(PATHに追加済みなら省略可)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
?? 注意: Chrome v137を使用している場合、追加の引数を追加する必要がある場合があります。
python
chrome_options.add_argument("--disable-features=DisableLoadExtensionCommandLineSwitch")
詳細はこちら:SeleniumHQ。バージョンによって動作が異なる場合があります—環境に合わせて調整してください。
CapSolver拡張機能を使用してreCAPTCHA v2を解決する
reCAPTCHA、Cloudflare Turnstile、AWS WAF、GeeTestなどのCAPTCHAは、数千のウェブサイトで使用されています。しかし、それらのDOM構造は、サイト間でほとんど一貫しています。CapSolver拡張機能は、それらの独自の特性に基づいてこれらのCAPTCHAを自動的に検出して解決できます—手動の操作は必要ありません。
reCAPTCHA v2を例に、Selenium内でCapSolver拡張機能を使用してバイパスする方法を示します。
(特に明記されていない限り、以下のデモは/assets/config.js → reCaptchaMode: 'click'
で設定されたクリックモードを使用します)
?? 拡張機能の解凍と
/assets/config.js
內のapiKey
の設定を忘れないでください。
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# ステップ1:GitHubから拡張機能を取得します:https://github.com/capsolver/capsolver-browser-extension/releases
# ステップ2:拡張機能を解凍し、/assets/config.jsでapiKeyを設定します
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriverのパスを指定(PATHに追加済みなら省略可)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# 拡張機能が自動的にreCAPTCHAを検出して解決します
time.sleep(15)
# 解決後、送信ボタンをクリックします
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver拡張機能は、多くの便利な構成オプションもサポートしています。すべての設定は
/assets/config.js
ファイルで調整できます。
solvedCallback
構成オプション
前の例では、ページの読み込み後に送信ボタンをクリックする前に15秒間待機しました。この待機期間は、CapSolver拡張機能にreCAPTCHAを自動的に解決するのに十分な時間を與えることを目的としていました。
しかし、このアプローチはエレガントではありません。実際には、CAPTCHAの解決には15秒よりはるかに短い時間がかかる場合や、ネットワークが遅い場合、15秒より長い時間がかかる場合があります。
これに対処するために、CapSolverはsolvedCallback
と呼ばれる構成オプションを提供しています。これにより、CAPTCHAが正常に解決されたらトリガーされるコールバック関數を定義できます。solvedCallback
オプションは/assets/config.js
にあります。関數の名前はカスタマイズできます—デフォルトではcaptchaSolvedCallback
です。
PuppeteerまたはPlaywrightを使用している場合は、page.exposeFunction
メソッドを使用して、このコールバック関數をブラウザコンテキストに公開できます。參照:
Python + Seleniumはどうですか?
殘念ながら、PythonのSeleniumはpage.exposeFunction
に相當する組み込み機能を提供していないため、この環境ではsolvedCallback
機能を完全に利用できません。
代わりに、DOMの監視を使用してCAPTCHAが解決されたかどうかを判斷することをお勧めします。たとえば、「私はロボットではありません」チェックボックスが消えたか、チェックマーク(?)に変わったかどうかを確認して、検証が完了したことを確認できます。
この戦略を使用して、前の例を改善しましょう。
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# ステップ1:GitHubから拡張機能を取得します:https://github.com/capsolver/capsolver-browser-extension/releases
# ステップ2:拡張機能を解凍し、/assets/config.jsでapiKeyを設定します
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriverのパスを指定(PATHに追加済みなら省略可)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# チェックボックスがチェックされているかどうかを確認します
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Failed to check reCAPTCHA status: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# 拡張機能は自動的にCAPTCHAを認識して解決します。
# 固定時間スリープする代わりに、定期的にチェックします。
timeout = 30
start_time = time.time()
while time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("reCAPTCHA verification successful!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
manualSolving
構成オプション
前の例では、CAPTCHAの解決プロセスはページの読み込みが完了するとすぐに自動的に開始されます。しかし、場合によっては、CAPTCHAソルバーをトリガーする前に、まずユーザー名とパスワードを入力するなど、他の操作を実行する必要がある場合があります。CAPTCHAを早すぎる時點で解決すると、送信前にトークンが期限切れになる可能性があります。
manualSolving
オプションは、この問題に対処するために設計されています。/assets/config.js
でmanualSolving: true
に設定することにより、次の2つの方法のいずれかを使用して、CAPTCHAの解決を手動でトリガーできます。
- Seleniumを介してCapSolver拡張機能ボタンのクリックをシミュレートします。
- メッセージを投稿するスクリプトを実行します。
window.postMessage({ type: 'capsolverSolve' });
(注:この方法は、v1.16.0以降の拡張機能バージョンでサポートされています。)
次の例は、両方の方法を示しています。
python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# ステップ1:GitHubから拡張機能を取得します(https://github.com/capsolver/capsolver-browser-extension/releases)
# ステップ2:拡張機能を解凍し、/assets/config.jsでapiKeyを設定します
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriverのパスを指定(PATHに追加済みなら省略可)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# チェックボックスがチェックされているかどうかを確認します
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Failed to check reCAPTCHA status: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# ユーザー入力をシミュレートします
driver.execute_script("""
const inputA = document.querySelector('input[name="ex-a"]');
inputA.value = 'username';
const inputB = document.querySelector('input[name="ex-b"]');
inputB.value = 'password';
""")
# 追加の操作をシミュレートします
for i in range(1, 6):
time.sleep(1)
print(f"Waited {i} seconds...")
# CAPTCHAの解決をトリガーします(config.jsでmanualSolvingをtrueに設定する必要があります)
print("Start solving captcha...")
# 方法1:CapSolverボタンのクリックをシミュレートします
try:
capsolver_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#capsolver-solver-tip-button")))
driver.execute_script("arguments[0].click();", capsolver_button)
except Exception as e:
print(f"Unable to find CapSolver button: {e}")
# 方法2:postMessageを介してトリガーします(代替方法)
# driver.execute_script("window.postMessage({ type: 'capsolverSolve' });")
# CAPTCHAが解決されるのを待ち、フォームを送信します
timeout = 30
javascript
start_time = time.time()
while time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("reCAPTCHA検証成功!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
#### `reCaptchaMode` 設定
`reCaptchaMode` は、`click` と `token` の2つのモードをサポートしています。
* **click**: 画像チャレンジをクリックすることで、人間をシミュレートします。
* **token**: クリックをスキップし、タスクをCapSolverのバックエンドにAPI経由で直接送信し、CAPTCHAが解決されるとトークンを返します。
`click`モードで複数の画像チャレンジラウンドが必要な場合は、ローカル環境の品質が低い可能性があります。その場合は、**`token`モードを使用することをお勧めします**。
| クリックモード | トークンモード |
|------------|------------|
|  |  |
#### `showSolveButton` 設定
`showSolveButton: false`に設定すると(デフォルトは`true`)、CapSolverの解決ボタンがページに表示されなくなります。
ただし、これは**CAPTCHA解決機能には影響しません**。バックグラウンドで通常どおり機能します。

#### `useProxy` 設定
`useProxy: true`を有効にすると、次のプロキシ設定を指定できます。
* `proxyType`
* `hostOrIp`
* `port`
* `proxyLogin`
* `proxyPassword`
その後、**カスタムプロキシ**を使用してCAPTCHAを解決します。
独自のプロキシを使用する必要があるケースは、次の2つのシナリオが一般的です。
1. プロキシが**より高品質**(例:reCAPTCHAトークンに高いスコアを生成する)または**高速な解決速度**を提供する場合。
2. CAPTCHAを解決するために使用されるIPが、トークンを送信するために使用されるIPと一致する必要がある場合。
上記は一般的に使用される設定オプションの一部です。実際のニーズに合わせて他の設定を調整できます。ご不明な点がございましたら、[カスタマーサポート](/)にお問い合わせください。
### CapSolver拡張機能を使用したImageToTextの解決
reCAPTCHA、Cloudflare Turnstile、AWS WAFなどのサードパーティCAPTCHAとは異なり、画像から文字または数字を認識する必要があるCAPTCHAのカテゴリがあります。これらを**ImageToText** CAPTCHAと呼びます。通常、次のようになります。

ImageToText CAPTCHAは通常、ウェブサイトの所有者によるカスタム実装です。これらのCAPTCHAの配置は、さまざまなウェブサイトやページで異なるため、**CapSolver拡張機能はどの画像がCAPTCHAかを自動的に検出できません**。コードで**手動で指示する**必要があります。
#### 方法:
1. CAPTCHA画像要素に`capsolver-image-to-text-source`属性(値`0`)を追加します。
2. 結果入力要素に`capsolver-image-to-text-result`属性(値`0`)を追加します。
`capsolver-image-to-text-source`と`capsolver-image-to-text-result`の両方は、`/assets/config.js`のオプション`textCaptchaSourceAttribute`と`textCaptchaResultAttribute`でそれぞれ設定できます。
例として[デモ](https://captcha.com/demos/features/captcha-demo.aspx)を使用して、SeleniumでImageToText CAPTCHAを解決する方法を示します。
ページソースから、次を特定します。
* CAPTCHA画像要素ID:`demoCaptcha_CaptchaImage`
* 結果入力フィールドID:`captchaCode`
次のようになります。

Seleniumスクリプトで`setAttribute`メソッドを使用して、必要な属性を追加できます。
```python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# Step 1: GitHubから拡張機能を取得 (https://github.com/capsolver/capsolver-browser-extension/releases)
# Step 2: 拡張機能のzipファイルを解凍し、/assets/config.jsでapiKeyを設定
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriverへのパスを指定 (PATHに追加済みの場合は省略可能)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://captcha.com/demos/features/captcha-demo.aspx")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage')))
# CapSolver拡張機能にCAPTCHA画像の場所を伝える
driver.execute_script("""
const imgElement = document.querySelector('#demoCaptcha_CaptchaImage');
if (imgElement) {
imgElement.setAttribute('capsolver-image-to-text-source', '0');
}
""")
# CapSolver拡張機能に認識結果を入力する場所を伝える
driver.execute_script("""
const resultElement = document.querySelector('#captchaCode');
if (resultElement) {
resultElement.setAttribute('capsolver-image-to-text-result', '0');
}
""")
time.sleep(5)
validate_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'validateCaptchaButton')))
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
期待される結果:

CapSolver APIとSeleniumの統合方法
CapSolverブラウザ拡張機能は便利で高速です。しかし、経験豊富な開発者であれば、APIメソッドの使用をお勧めします。拡張機能ベースの統合と比較して、APIアプローチにはいくつかの利點があります。
- パラメータをさらにカスタマイズでき、入力はより正確になります。事実上すべてのCAPTCHAシナリオに対応できます。
- CAPTCHAをいつ解決するかをより細かく制禦できます。
- APIはより詳細なエラーメッセージを提供し、ロジックの最適化に役立ちます。
開始前に
CapSolver APIの使用方法を理解する必要があります。このプロセスには2つのステップがあります。
- ステップ1:
https://api.capsolver.com/createTask
でタスクを作成します。 - ステップ2:
https://api.capsolver.com/getTaskResult
で結果を取得します。
タスクを作成する際には、通常はclientKey
、websiteURL
、websiteKey
などのパラメータを含むJSONペイロードをCapSolverに送信する必要があります。これらのパラメータは、CAPTCHAの種類とターゲットウェブサイトによって異なります。詳細については、ドキュメントを參照してください。
CapSolver APIを使用したreCAPTCHA v2の解決
reCAPTCHA v2を解決する前に、ガイドを參照してください。
? https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/
リクエストに含める必要があるJSONフィールドについて詳しく説明されています。
さらに、CapSolver拡張機能を使用して、必要なJSONデータの迅速な抽出を行うことができます。ヘルプについては、このブログを參照してください。
? JSONデータの取得
次の例を考えてみましょう。https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
必要なJSONペイロードは次のとおりです。
json
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
ドキュメントでは、APIを使用するためのPythonコードサンプルも提供しています。

例:Selenium(Python)との統合
python
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# chromedriverへのパスを指定 (PATHに追加済みの場合は省略可能)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# TODO: CapSolverの設定を行う
api_key = "YOUR_API_KEY" # 自分のCapSolver APIキーに置き換える
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9" # reCAPTCHAサイトキー
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php" # ターゲットページURL
captcha_type = 'ReCaptchaV2TaskProxyLess'
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": captcha_type,
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("タスクの作成に失敗しました:", res.text)
return ""
print(f"taskIdを取得しました: {task_id} / 結果を取得中...")
while True:
time.sleep(1)
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("解決に失敗しました!レスポンス:", res.text)
return ""
try:
token = capsolver()
print("token:", token)
driver.get(site_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# reCAPTCHAレスポンストークンを挿入する
driver.execute_script("""
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = arguments[0];
}
""", token)
# 送信ボタンをクリックする
submit_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]')))
submit_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver APIを使用したImageToTextの解決
例として、次のサイトを使用しましょう。https://captcha.com/demos/features/captcha-demo.aspx。
このページでは、CAPTCHA畫像要素のIDはdemoCaptcha_CaptchaImage
、結果の入力フィールドのIDはcaptchaCode
です。下のスクリーンショットを參照してください。

ImageToTextTask
では、CAPTCHA畫像のbase64エンコード値をCapSolverに渡す必要があります。動作例を以下に示します。
python
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# chromedriverのパスを指定 (PATHに追加済みの場合は省略可能)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# TODO: CapSolverの設定を行う
api_key = "YOUR_API_KEY" # 自分のCapSolver APIキーに置き換える
site_url = "https://captcha.com/demos/features/captcha-demo.aspx" # ターゲットページURL
captcha_type = 'ImageToTextTask'
def capsolver(base64Image):
payload = {
"clientKey": api_key,
"task": {
"type": captcha_type,
"websiteURL": site_url,
"body": base64Image
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('text')
elif status == "failed" or resp.get("errorId"):
print("解決に失敗しました!レスポンス:", res.text)
return ""
else:
print("不明なレスポンス:", resp.text)
return ""
try:
driver.get(site_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage')))
# captcha画像のsrc属性からbase64文字列を取得する
captcha_src = driver.execute_script("""
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
""")
if not captcha_src:
raise Exception("captcha画像を取得できません!")
base64_image = captcha_src.split(',')[1] # 'data:image/png;base64,'プレフィックスを除去する
captcha_text = capsolver(base64_image)
print("テキスト:", captcha_text)
# CAPTCHA結果を入力する
driver.execute_script("""
document.getElementById('captchaCode').value = arguments[0];
""", captcha_text)
# 検証ボタンをクリックする
validate_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, '#validateCaptchaButton'))
)
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
複雑なImageToText
CAPTCHAの種類によっては、異なる認識モデルを指定して精度を向上させることができます。詳細については、公式ドキュメントを參照してください。
? https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/

CapSolver SDKとSeleniumの統合方法
CapSolverは**Python**と**Golang**の両方で公式SDKを提供しており、最小限の労力でCAPTCHA解決を統合できます。生のAPIを使用する場合(`createTask`と`getTaskResult`を手動で処理する必要がある)とは異なり、SDKはプロセス全体を簡素化します。
公式GitHubリポジトリ:
* **[Python SDK](https://github.com/capsolver/capsolver-python)**
* **[Golang SDK](https://github.com/capsolver/capsolver-go)**
### CapSolver SDKを使用したreCAPTCHA v2の解決
APIの場合と同様に、reCAPTCHA v2を解決する前に、送信するJSONパラメータに関する詳細については、ドキュメントを參照してください。
? [https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/](https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/)
さらに、CapSolverブラウザ拡張機能を使用して、必要なJSONデータを迅速に抽出できます。
? [/blog/reCAPTCHA/recaptcha-v3-solver-human-score](/blog/reCAPTCHA/recaptcha-v3-solver-human-score)
このページを例として使用しましょう。
? [https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php](https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php)
必要なJSONペイロードは次のようになります。
```json
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
CapSolver SDKのインストール:
bash
pip install capsolver
例:SeleniumでのSDKの使用
python
import time
import capsolver
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# CapSolverの設定
api_key = "YOUR_API_KEY"
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
captcha_type = 'ReCaptchaV2TaskProxyLess'
capsolver.api_key = api_key
try:
# SDKを使用した解決
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["gRecaptchaResponse"]
print("token:", token)
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]'))
)
driver.execute_script("""
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = arguments[0];
}
""", token)
submit_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]'))
)
submit_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver SDKを使用したImageToTextの解決
APIの場合と同様に、次のサイトを使用します。
? https://captcha.com/demos/features/captcha-demo.aspx
CAPTCHA畫像のIDはdemoCaptcha_CaptchaImage
、結果入力フィールドのIDはcaptchaCode
です。
ImageToTextTask
では、base64エンコードされた畫像をCapSolverに渡すだけです。
例コード:
python
import time
import capsolver
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# CapSolverの設定
api_key = "YOUR_API_KEY"
site_url = "https://captcha.com/demos/features/captcha-demo.aspx"
captcha_type = 'ImageToTextTask'
capsolver.api_key = api_key
try:
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage'))
)
# 画像からbase64文字列を取得
captcha_src = driver.execute_script("""
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
""")
if not captcha_src:
raise Exception("Unable to obtain captcha image!")
base64_image = captcha_src.split(',')[1]
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"body": base64_image,
})
captcha_text = solution["text"]
print("Text:", captcha_text)
driver.execute_script("""
document.getElementById('captchaCode').value = arguments[0];
""", captcha_text)
validate_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, '#validateCaptchaButton'))
)
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
參考資料
- CapSolverドキュメント
- CapSolver拡張機能GitHubリリース
- ChromeウェブストアのCapSolver拡張機能
- FirefoxアドオンのCapSolver拡張機能
- reCAPTCHA v3のためのヒューマンライクスコアソルバー
CapSolver拡張機能を紹介するデモビデオ:
- CapSolver Chrome拡張機能でreCAPTCHA v3を解決
- CapSolver Chrome拡張機能でreCAPTCHA v2を解決
- PuppeteerとCapSolver拡張機能でreCAPTCHAを解決
- PuppeteerとCapSolver拡張機能でImageToTextを解決
さらに、CapSolverは開発者収益分配プログラムを提供しており、開発者とパートナーは、CapSolverソリューションを統合または宣伝することで手數料を獲得できます。これは、他の人が効率的にCAPTCHAを解決するのを支援しながら、自分の仕事を収益化するための優れた方法です。詳細については、以下をご覧ください。
CapSolver開発者プラン
まとめ
このガイドでは、CAPTCHA処理のためにSeleniumとCapSolverを効果的に統合する方法を示しました。Web自動化のためのSeleniumのコア機能について説明し、2つの主要なCapSolver統合方法を強調しました。
- CapSolverブラウザ拡張機能: 自動CAPTCHA解決のための簡単なソリューションで、迅速な設定に最適です。
- CapSolver API/SDK: より高度な制御と精度を提供し、高度なユースケースに最適です。詳細なAPIドキュメントはこちら、Python SDKはこちらにあります。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨勵します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

reCAPTCHA Enterprise v2、v2インビジブル、v3、v3エンタープライズ 0.9スコアのあらゆるバージョンをどう解決するか
CapSolverでreCaptchaのあらゆるバージョンを解くスキルをマスター: このガイドは、reCaptchaを効果的に解決するためのステップバイステップのチュートリアルを提供し、常に正確な結果を実現します。

Sora Fujimoto
11-Oct-2025

畫像キャプチャの解き方
このブログ記事は、畫像CAPTCHAを解くための包括的なガイドを提供します。CapSolverはそのプロセスを自動化するツールであり、畫像CAPTCHAとは何かの説明から始まり、CapSolverのAPIを使用してこれらのCAPTCHAを解くための詳細なステップバイステップの手順が説明されています。このガイドには、プロセスに関與するリクエストとレスポンスの例が含まれています。記事は、畫像CAPTCHAを解くためにCapSolverを使用する効率性と利便性についての注意點で締めくくられ、CAPTCHAの解決を含むタスクを自動化したい人にとって価値あるリソースとなっています。

Sora Fujimoto
11-Oct-2025

reCaptcha v2 インビジブルの解決方法
このブログは、Capsolverを使用してreCaptcha v2の非表示を解決するための包括的なガイドです。必要な情報をCapsolverに提出し、結果を検証するまでのステップバイステップのウォークスルーを提供しています。このブログは、理解しやすく、実行しやすいように設計されており、ウェブサイトでreCaptcha v2の非表示を実装および解決するプロセスを迅速かつ効率的にします。これは独自で拡張されたガイドであり、著作権侵害なしに読者がプロセスを完全に理解できるようにしています。

Nikolai Smirnov
11-Oct-2025

リキャプチャバージョン3を突破する
CapSolverを使用してreCaptcha V3を解決する方法を学ぶ:多様なタスクの種類、シンプルなAPI連携、およびオートメーションおよびテストのための効果的なソリューション

Sora Fujimoto
10-Oct-2025

2025年におけるウェブスクリーピング時のAWS WAFの最適なソルバーは何か?
2025年におけるAWS WAF CAPTCHAを効率的に解く方法をCapSolverで学ぶ。ステップバイステップのガイド、Python統合、自動化ワークフローを効率化するAI駆動のソルバー。ダイナミックなトークン、行動解析、複雑なCAPTCHAチャレンジを簡単に乗り越える。

Lucas Mitchell
26-Sep-2025

reCaptchaのコールバック関數の探し方
reCAPTCHAのコールバックを見つけるには、reCAPTCHAが正常に解決された後に実行されるJavaScript関數を特定します。手順の概要を以下に示します。

Sora Fujimoto
23-Sep-2025