CAPSOLVER
ブログ
PythonでCAPTCHA画像をCapSolverで解決する方法

画像CAPTCHAをPythonでCapSolverで解く方法

Logo of CapSolver

Sora Fujimoto

How to use CapSolver

13-Oct-2026

TL;DR

  • CAPTCHAで画像から文字を読み取るように求められた場合は、CapSolverのImageToTextTaskを使用してください。
  • 画像のバイトをBase64文字列として送信し、データURLプレフィックスや改行を含めないでください。
  • ImageToTextTaskは認識結果を直接返します。別途結果ポーリングループは必要ありません。
  • 返された解決策から認識された文字を読み取り、その画像に関連するフォームに入力してください。
  • 画像が送信前に更新された場合、以前の回答は現在のチャレンジに該当しなくなる可能性があります。

Pythonスクリプトは許可されたフォームにアクセスし、歪んだ文字や数字を含む小さな画像で停止します。次のステップは簡単です: 現在の画像をキャプチャし、画像CAPTCHAソルバーにその文字を認識させ、返されたテキストを対応するフォームに入力します。

CapSolverはこの認識ステップにImageToTextTaskを提供しています。このガイドでは、公式Python SDKの例を使用し、入力の準備、結果の読み取り、呼び出しで一般的に発生するミスの診断について説明します。所有するフォームや自動化が許可されているフォームでこのワークフローを使用してください。認識応答は宛先のアクセスルールを変更しません。

ImageToTextTaskが解決する内容

ImageToTextTaskは画像内のテキストを認識し、Pythonアプリケーションが使用できる文字を返します。

これは光学文字認識タスクです。入力は画像であり、有用な出力はその画像に表示されているテキストです。このフォームは、表示された文字を入力フィールドに入力するように求めています。

reCAPTCHAチェックボックスやTurnstileウィジェットは別の統合です。画像全体のスクリーンショットをImageToTextTaskに送信しても、ブラウザ検証トークンは得られません。アプリケーションにトークンが必要な場合は、対応するドキュメント化されたタスクを使用してください。

まず、フォームが何を求めるかを確認してください。テキスト入力横にキャラクター画像が表示されている場合は、画像認識が適切です。グリッドの操作、非表示のチェック、または他のチャレンジ形式を求める場合は、APIを選択する前にその形式を特定してください。

画像とPython環境の準備

現在のCAPTCHA画像、Python、CapSolverパッケージ、および必要なサービスにアクセスできるCapSolverアカウントキーが必要です。

許可されたテストまたはアプリケーションから画像を保存し、captcha.pngとして保存してください。完全な文字領域を表示してください。関係のないページのテキスト、ブラウザコントロール、または別のCAPTCHAを含めないでください。この目的は、その特定のフォーム試行でユーザーが読み取る画像を送信することです。

Python環境に公式パッケージをインストールしてください:

bash Copy
python -m pip install capsolver==1.0.7

これはこのガイドの背後にあるパッケージチェックで使用されるSDKバージョンをピン留めします。異なるプロジェクトが異なる依存関係を必要とする場合、隔離された環境が役立つ理由について、Pythonのパッケージインストールガイドが説明しています。

このガイドの後のライブSDKコールには、実際のアカウントキーと完全なBase64画像文字列が必要です。これらは置き換え可能な省略記号ではなく、ドキュメントに表示される値ではありません。例はCapSolverの公式ドキュメントから取得されています。ここではライブ認識結果は示されていません。

アカウントキーを共有スクリーンショット、ソースリポジトリ、サポートチケットから除外してください。別のCAPTCHAタイプにサイトキーがある場合、それはCapSolverアカウントキーの代用ではありません。

画像をBase64に変換

画像のバイナリコンテンツをプレーンなBase64文字列に変換し、タスクのbodyフィールドに配置してください。

captcha.pngと同じディレクトリにprepare_image.pyとして以下の準備スニペットを保存してください:

python Copy
from pathlib import Path
import base64

image_bytes = Path("captcha.png").read_bytes()
image_base64 = base64.b64encode(image_bytes).decode("ascii")
Path("captcha-base64.txt").write_text(image_base64, encoding="ascii")
print("Saved Base64 image to captcha-base64.txt")

python prepare_image.pyで実行してください。テキストファイルには次のステップでbodyに使用する完全な値が含まれます。

このスニペットはPythonのドキュメント化されたバイナリファイルの読み込みとBase64エンコードを使用しています。これはローカルで入力を準備するものであり、CapSolverを呼び出すことや文字の認識は行いません。

続きの前に元の画像を開いてください。captcha.pngという名前のファイルは、以前のダウンロードでHTMLエラーページが保存されている場合、誤ったデータを含んでいる可能性があります。正しい画像が表示されていることを確認し、そのファイルからテキストファイルが作成されたことを確認してください。

タスクのbodyにローカルパスcaptcha.pngを送信しないでください。画像URLをテキストとしてエンコードしないでください。APIには、Base64で表された実際の画像バイトが必要です。

公式ImageToTextTaskの例を呼び出す

必要なプレースホルダーを置き換えた後、ドキュメント化されたImageToTextタスクでcapsolver.solveを呼び出してください。

以下のSDK例は公式ImageToTextTaskドキュメントから取得しています。solve_image.pyとして保存してください。...をあなたのアカウントキーに置き換え、captcha-base64.txtの内容で省略されたbody文字列全体を置き換えた後、python solve_image.pyを実行してください。

python Copy
import capsolver

capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "ImageToTextTask",
    "module": "common",
    "body": "/9j/4AAQSkZJRgABA......"
})
print(solution)

表示されているキーと画像文字列はドキュメントのプレースホルダーです。これらを変更せずに実行しても、有用な認識結果は得られません。上記の別途の準備ステップにより実際の画像値が供給され、アカウントがキーを提供します。

タスクフィールドには小さな特定の目的があります:

フィールド 提供する内容
type ImageToTextTask
module この例ではcommonを使用
body 完全なBase64エンコードされた画像コンテンツ
websiteURL タスクのドキュメントに記載されているオプションのソースページURL

公式ドキュメントでは、数値画像用のnumberモジュールも説明しています。画像に数字が含まれていて、ドキュメント化されたモードが使用ケースに合致する場合のみ選択してください。関連のない認識タスクからモジュール名を推測したりコピーしたりしないでください。

後でHTTP統合を希望する場合は、同じ認識タスクをcreateTaskを通じて送信できます。Python SDKはHTTPリクエストのハンドリングを自分で書かずにその呼び出しを行う便利な方法です。

CapSolverのボーナスコードを取得してください

自動化予算を即座に増やしましょう!
CapSolverアカウントにチャージする際にボーナスコードCAP26を使用すると、すべてのチャージで5%のボーナスが得られます — 制限なし。
今すぐCapSolverダッシュボードで取得してください
CapSolverのプロモーションで、コードCAP26を使用して5%のチャージボーナスを提供

ポーリングループを追加せずにテキストを読み取る

ImageToTextTaskは、別途getTaskResultのサイクルを必要とせず、認識出力を直接返します。

HTTPレスポンスドキュメントでは、認識された文字はsolution.textにあります。SDK例は解決策オブジェクトを返します。既存のPython画像CAPTCHAガイドでは、solution.get("text")でテキストを読み取ります。

実際のレスポンスを確認してください。成功した結果には、送信した画像の認識された文字が含まれます。エラー、結果が見つからない、または空の値はフォームに入力する答えではありません。

reCAPTCHAトークンチュートリアルから汎用的なポーリングループを追加しないでください。これらのタスクは異なる応答動作を持つ可能性があります。追加のポーリングは、すでに直接返された画像結果を改善しません。

認識とフォーム送信も区別してください。解決策を印刷することは、スクリプトが解決ステップから結果を取得したことを確認します。周囲のアプリケーションは、そのテキストを適切なフィールドに入力し、フォームの応答を確認する必要があります。

同じ画像の答えを送信する

認識されたテキストは、その画像を提供したフォーム試行にのみ使用してください。

許可されたフォームが画像Aを表示したと仮定します。スクリプトはAをキャプチャし、CapSolverに送信し、答えを取得します。リクエスト中にページが画像Bに更新された場合、Aの答えは現在のフォームに信頼できる入力ではなくなってしまいます。

ページと画像の関連性を明確にしてください。新しいチャレンジを意図的に要求する前に、現在の試行を完了してください。更新が発生した場合、置き換えられた画像をキャプチャし、前の答えを再送信するのではなく、新しい試行として扱ってください。

ソルバーから返された文字を保持してください。ターゲットフォームが明示的に要件としている変換を除き、自動的に小文字にしたり、先頭のゼロを削除したり、答えを数値に変換したりしないでください。テキスト値と数値値は異なる入力を表す可能性があります。

送信後、期待される結果を確認してください。所有する検索フォームの場合、それは要求された結果パネルかもしれません。QAテストの場合、それはアプリケーションの特定の成功状態かもしれません。CAPTCHAが消えることは有益な証拠ですが、すべてのビジネス結果ではありません。

一般的なPython画像CAPTCHAの問題を修正する

最も迅速な修正は、画像、リクエスト、フォームをこの順序で確認することです。

APIが画像入力を拒否する

bodyにBase64エンコードされた画像バイトが含まれていることを確認してください。画像ソースが追加したdata:image/...;base64,プレフィックスを削除し、改行を避けてください。ファイルがHTMLページや空のダウンロードではなく画像であることを確認してください。

実際の返されたコードでCapSolverエラー参照を使用してください。アカウントキーの問題、サポートされていないタスク、無効な画像リクエストには異なる修正が必要です。エラーを調べずに同じ拒否された入力を送り続けないでください。

テキストが間違っているように見える

APIに送信した正確な画像を確認してください。切り取られた文字、古い画像、またはキャプチャ内の関係のないテキストがないか確認してください。選択したモジュールが文字の内容に合致しているか確認してください。

自身のテストから限られた診断例を保持してください。これはチャレンジが変更された後のブラウザ全体のスクリーンショットよりも、認識品質の調査に役立ちます。

テキストが正しいように見えるがフォームが拒否する

画像が更新されたか、答えが正しいフィールドに入力されたか、アプリケーションが別のフォーム検証エラーを報告しているか確認してください。必須フィールドや期限切れのフォーム状態は、認識された文字が正しい場合でも送信を妨げる可能性があります。

バウンドされたリトライポリシーを使用してください。同じ失敗が繰り返される場合、原因を確認し、無限に新しい画像を取得し、別の結果を購入しないでください。

CapSolverで信頼性の高い自動化ワークフローを構築する

Python画像CAPTCHA処理を小さく保ちましょう: 現在の画像を準備し、ImageToTextTaskを送信し、返されたテキストを読み取り、対応するフォーム試行を確認してください。

CapSolverは認識ステップを処理します。スクリプトは有効な画像を提供し、正しい操作に答えを関連付けることで、実際の自動化ワークフローで結果が役立ちます。

FAQ

Q: ImageToTextTaskは結果のポーリングを必要としますか?

いいえ。このタスクは画像認識結果を直接返します。非同期トークンタスク向けに意図されたポーリングループではなく、ドキュメント化された応答動作に従ってください。

Q: bodyに画像URLを渡すことはできますか?

いいえ。ドキュメント化されたbody入力はBase64エンコードされた画像コンテンツです。許可された画像バイトをまず取得し、それからエンコードしてください。

Q: 認識されたテキストが含まれる値はどの値ですか?

HTTP結果ではsolution.textを使用します。公式Python SDKパターンでは、返された解決策オブジェクトからテキストを読み取ります。

Q: この例はreCAPTCHAチェックボックスを解決できますか?

いいえ。ImageToTextTaskはテキスト認識タスクです。reCAPTCHAウィジェットには、この例にスクリーンショットを渡す代わりに、対応するドキュメント化されたreCAPTCHA統合が必要です。

Q: なぜ見かけ上正しい答えがフォームによって拒否されるのですか?

答えは以前の画像に属している可能性があり、間違ったフィールドに入力されているか、他の無効なフォーム値と併せられている可能性があります。画像認識を責める前に、現在のフォームとその実際の応答を確認してください。

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

もっと見る

No data