Menu

Rozwiązywanie HCaptcha z proxy

Deweloperzy Hcaptcha nazywają swoją captchę "bezpośrednim, gotowym do użycia zamiennikiem Recaptcha". Naszym zamiarem było odtworzenie tej cechy w naszym API, więc właściwości/atrybuty zadania są takie same jak w RecaptchaV2Task z wyjątkiem atrybutu "type".

Ważna uwaga dotycząca wartości User-Agent. Poprzednio można było określić własny User-Agent dla zadań, ale to się zmieniło. Zamiast tego, podajemy user-agent pracownika, który należy użyć w celu ominięcia płatnej wersji Hcaptcha. Zostało to zmienione, ponieważ obecnie emulowanie obcego user-agenta w innej platformie jest prawie niemożliwe - na przykład user-agent Chrome w Firefoxie. Przeglądarki mają dużą liczbę drugorzędnych artefaktów oprócz navigator.userAgent, które należą do specyfiki tej lub innej platformy.

Przykład Captcha

Obiekt typu zadanie

Właściwość/atrybutTypWymaganyPrzeznaczenie
typeŁańcuch znaków (String)TakHCaptchaTask
websiteURLŁańcuch znaków (String)TakAdres docelowej strony. Może znajdować się w dowolnym miejscu witryny, włącznie ze strefami dla zalogowanych. Nasi pracownicy nie muszą tam wchodzić, gdyż wizyta jest symulowana.
websiteKeyŁańcuch znaków (String)Takklucz strony hCaptcha
proxyTypeŁańcuch znaków (String)TakTyp proxy
http - typowe proxy http/https
socks4 - proxy socks4
socks5 - proxy socks5
proxyAddressŁańcuch znaków (String)TakAdres IPv4/IPv6 proxy. Nie stosować nazw hostów ani adresów IP z sieci lokalnych.
proxyPortIntegerTakPort proxy
proxyLoginŁańcuch znaków (String)TakLogin dla proxy wymagających uwierzytelniania (podstawowe)
proxyPasswordŁańcuch znaków (String)TakHasło proxy
userAgentŁańcuch znaków (String)TakPodaj user-agent z którego korzystasz do nawigacji w witrynie. Nasi pracownicy użyją tej samej wartości podczas procesu rozwiązywania Hcaptcha.
Przestarzałe. Zamiast tego należy korzystać z User-Agent od naszych pracowników, zwracanego przez metodę "getTaskResult".
isInvisibleLogiczny (Boolean)NieOkreśla, czy Hcaptcha jest niewidoczna, czy nie. Pozwoli to na wyświetlenie odpowiedniego widgetu dla naszych pracowników.
isEnterpriseLogiczny (Boolean)NieUżyj tego parametru, jeśli chcesz, aby Hcaptcha była rozwiązywana przez pracowników z najlepszą punktacją Hcaptcha. Należy pamiętać, że potroi to koszt rozwiązania.
enterprisePayloadObiekt (object)NieDodatkowe parametry, których będziemy używać do renderowania widżetu Hcaptcha dla wersji Enterprise.

Właściwość/atrybutTypWymagany
rqdataŁańcuch znaków (String)Nie
sentryLogiczny (Boolean)Nie
apiEndpointŁańcuch znaków (String)Nie
endpointŁańcuch znaków (String)Nie
reportapiŁańcuch znaków (String)Nie
assethostŁańcuch znaków (String)Nie
imghostŁańcuch znaków (String)Nie

Przykład żądania

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)

Obiekt typu rozwiązanie zadania

Właściwość/atrybutTypPrzeznaczenie
gRecaptchaResponseŁańcuch znaków (String)Łańcuch znaków - token wymagany do interakcji z formularzem wysyłalnym na docelowej stronie.
respKeyŁańcuch znaków (String)Wyjście funkcji "window.hcaptcha.getRespKey()", gdy dostępne. Niektóre strony internetowe używają jej do dodatkowej weryfikacji.
userAgentŁańcuch znaków (String)User-Agent przeglądarki pracownika. Użyj go podczas przesyłania tokena odpowiedzi.

Przykład odpowiedzi

{
    "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"
}