Menu

プロキシ経由でHCaptchaを解決する

Hcaptchaの開発者たちは彼らのcaptchaを 「Recaptchaのドロップイン置き換え」と呼んでいます。当社はAPIで同じものを作ろうとしたので、タスクプロパティは「タイプ」以外はRecaptchaV2Taskと全く同じです。

User-Agent 値に関する重要なお知らせ。以前は、タスクに独自の User-Agent を指定することができましたが、これは変更されました。代わりに、Hcaptcha の有料版をバイパスするために必要な作業員のユーザー エージェントを提供します。これは、現在他のプラットフォーム、例えばFirefox でChromeのユーザエージェントをエミュレートすることはほとんど不可能だからです。ブラウザーには、navigator.userAgent 以外にも、特定のプラットフォームに特化した二次的なアーティファクトが多数あります。

captcha例

タスクオブジェクト

プロパティタイプ必須目的
type文字列はいHCaptchaTask
websiteURL文字列はいターゲットページのアドレス。ユーザーエリアでも、ウェブサイトのどこにでも挿入できます。作業員は実際にアクセスしませんがアクセスをシミュレートします。
websiteKey文字列はいhCaptchaサイトキー
proxyType文字列はいプロキシのタイプ
http - 通常のhttp/httpsプロキシ
socks4 - socks4 プロキシ
socks5 - socks5 プロキシ
proxyAddress文字列はいプロキシIP アドレスipv4/ipv6。ローカルネットワークからのホスト名またはIPアドレスがありません。
proxyPort整数はいプロキシポート
proxyLogin文字列はい認可が必要なプロキシのログインです(基本)
proxyPassword文字列はいプロキシパスワード
userAgent文字列はいWebサイトのナビゲートに使用しているユーザーエージェントを提供します。当社の作業員は、Hcaptcha解決中に同じ値を使用します。
非推奨です。代わりに、 「getTaskResult」メソッドによって返される作業員のUser-Agent を使用します。
isInvisibleブール型いいえHcaptchaを非表示にするかどうかを指定します。これにより、作業員に適切なウィジェットがレンダリングされます。
isEnterpriseブール型いいえHcaptcha を最も高いHcaptcha スコアの作業員で解決したい場合は、このパラメータを使います。解決コストが3倍になることに注意してください。
enterprisePayloadオブジェクトいいえEnterpriseバージョンのHcaptchaウィジェットをレンダリングするために使用する追加のパラメーター。

プロパティタイプ必須
rqdata文字列いいえ
sentryブール型いいえ
apiEndpoint文字列いいえ
endpoint文字列いいえ
reportapi文字列いいえ
assethost文字列いいえ
imghost文字列いいえ

リクエスト例

Python
Javascript
Go
PHP
Java
C#
bash
#pip3 install anticaptchaofficial

from anticaptchaofficial.hcaptchaproxyon import *

solver = hCaptchaProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://hcaptcha.com/")
solver.set_website_key("00000000-0000-0000-0000-000000000000")
solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
solver.set_user_agent("Mozilla/5.0")
solver.set_cookies("test=true")

# tell API that Hcaptcha is invisible
#solver.set_is_invisible(1)

# tell API that Hcaptcha is Enterprise
#solver.set_is_enterprise(1)

# set here parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
#solver.set_enterprise_payload({
#    "rqdata": "rq data value from target website",
#    "sentry": True
#})

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

g_response = solver.solve_and_return_solution()
if g_response != 0:
    print("g-response: "+g_response)
    print("user-agent, use it to post the form: ", solver.get_user_agent())
    print("respkey, if any: ", solver.get_respkey())
else:
    print("task finished with error "+solver.error_code)

タスクソリューションオブジェクト

プロパティタイプ目的
gRecaptchaResponse文字列ターゲットウェブサイトで送信フォームでやり取りするために必要なトークン文字列です。
respKey文字列利用可能な場合の「window.hcaptcha.getRespKey()」関数の出力です。一部のWebサイトでは、追加の検証に使用されます。
userAgent文字列作業員のブラウザのUser-Agent。応答トークンを送信するときに使用します。

レスポンス例

{
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3......",
        "respKey":"E0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoiQk5vb1JuZ0FPSHBCM2EyWURSSC......",
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}