jak rozwiązać recaptcha podczas skrobania sieci w 2024 r. za pomocą narzędzia recaptcha#
Przegląd reCAPTCHA#
reCAPTCHA to bezpłatna usługa świadczona przez Google, która pomaga chronić strony internetowe przed spamem i nadużyciami. Wykorzystuje zaawansowane techniki analizy ryzyka i wyzwania adaptacyjne, aby odróżnić ludzi od botów. Termin „CAPTCHA” oznacza „Całkowicie zautomatyzowany publiczny test Turinga pozwalający odróżnić komputery od ludzi”.
Na przestrzeni lat pojawiło się kilka wersji reCAPTCHA:
reCAPTCHA v1: Była to pierwotna wersja, w której użytkownicy mieli zniekształcony tekst, który musieli rozszyfrować i wpisać w pudełku. Było to przydatne przy digitalizacji książek i innych materiałów drukowanych, ale ludziom często trudno było rozwiązać ten problem.
reCAPTCHA v2: W tej wersji wprowadzono pole wyboru „Nie jestem robotem”, o kliknięcie którego użytkownicy proszeni są. Jeśli system nie będzie pewien, czy użytkownik jest człowiekiem, czy nie, pojawią się dodatkowe wyzwania, takie jak identyfikacja obiektów na obrazach.
reCAPTCHA v3: Ta wersja działa w tle i nie przeszkadza użytkownikom w wyzwaniach. Zamiast tego przypisuje każdemu odwiedzającemu ocenę ryzyka na podstawie jego interakcji z witryną. Właściciele witryn mogą następnie wykorzystać ten wynik, aby zdecydować, jak postąpić z gościem (np. zablokować, rzucić wyzwanie itp.).
Rozwiązywanie reCAPTCHA#
Warunki wstępne#
Poproś o bibliotekę
używamy żądania Pythona na przykład kodu
Klucz klienta NextCaptcha
pobierz klucz klienta NextCaptcha z panelu #
Zarejestruj się w NextCaptcha, aby natychmiast otrzymać bezpłatny klucz API i kredyty na bezpłatną wersję próbną.
Kod Pythona do rozwiązania reCAPTCHA#
# create task
"""
Create NextCaptcha CAPTCHA solver task.
:param task: task of captcha dict.
:param client_key: the client key form nextcaptcha dashboard.
:param solft_id: Optional. The value of the 'solft_id'.
:param callback_url: Optional. callback when the captcha task finish.
:return: A dictionary containing the solution of the reCAPTCHA.
"""
def send_task (task, client_key, solft_id, callback_url):
HOST = "https://api.nextcaptcha.com"
session = requests.session()
data = {
"clientKey" : client_key,
"solftId" : solft_id,
"callbackUrl" : callback_url,
"task" : task,
}
resp = session.post( url = HOST + "/createTask" , json = data)
if resp.status_code != 200 :
return resp.json()
resp = resp.json()
task_id = resp.get( "taskId" )
start_time = time.time()
while True :
if time.time() - start_time > TIMEOUT :
return { "errorId" : 12 , "errorDescription" : "Timeout" , "status" : "failed" }
resp = session.post( url = HOST + "/getTaskResult" ,
json = { "clientKey" : client_key, "taskId" : task_id})
if resp.status_code != 200 :
return resp.json()
status = resp.json().get( "status" )
if status == READY_STATUS :
return resp.json()
if status == FAILED_STATUS :
return resp.json()
time.sleep( 1 )
Przykładowy kod Pythona do rozwiązania reCAPTCHA v2#
def recaptchav2 (self, website_url: str , website_key: str , recaptcha_data_s_value: str = "" ,
is_invisible: bool = False , api_domain: str = "" , page_action: str = "" ) -> dict :
"""
Solve reCAPTCHA v2 challenge.
:param website_url: The URL of the website where the reCAPTCHA is located.
:param website_key: The sitekey of the reCAPTCHA.
:param recaptcha_data_s_value: Optional. The value of the 'data-s' parameter if present.
:param is_invisible: Optional. Whether the reCAPTCHA is invisible or not.
:param api_domain: Optional. The domain of the reCAPTCHA API if different from the default.
:return: A dictionary containing the solution of the reCAPTCHA.
"""
task = {
"type" : "RecaptchaV2TaskProxyless" ,
"websiteURL" : website_url,
"websiteKey" : website_key,
"recaptchaDataSValue" : recaptcha_data_s_value,
"isInvisible" : is_invisible,
"apiDomain" : api_domain,
"pageAction" : page_action,
}
return send_task(task)
Przykładowy kod Pythona do rozwiązania reCAPTCHA v2 Enterprise#
def recaptchav2enterprise (self, website_url: str , website_key: str , enterprise_payload: dict = {},
is_invisible: bool = False , api_domain: str = "" , page_action: str = "" ) -> dict :
"""
Solve reCAPTCHA v2 Enterprise challenge.
:param website_url: The URL of the website where the reCAPTCHA is located.
:param website_key: The sitekey of the reCAPTCHA.
:param enterprise_payload: Optional. Additional enterprise payload parameters.
:param is_invisible: Optional. Whether the reCAPTCHA is invisible or not.
:param api_domain: Optional. The domain of the reCAPTCHA API if different from the default.
:return: A dictionary containing the solution of the reCAPTCHA.
"""
task = {
"type" : "RecaptchaV2EnterpriseTaskProxyless" ,
"websiteURL" : website_url,
"websiteKey" : website_key,
"enterprisePayload" : enterprise_payload,
"isInvisible" : is_invisible,
"apiDomain" : api_domain,
"pageAction" : page_action,
}
return send_task(task)
Przykładowy kod Pythona do rozwiązania reCAPTCHA v3#
def recaptchav3 (self, website_url: str , website_key: str , page_action: str = "" , api_domain: str = "" ,
proxy_type: str = "" , proxy_address: str = "" , proxy_port: int = 0 , proxy_login: str = "" ,
proxy_password: str = "" ) -> dict :
"""
Solve reCAPTCHA v3 challenge.
:param website_url: The URL of the website where the reCAPTCHA is located.
:param website_key: The sitekey of the reCAPTCHA.
:param page_action: Optional. The action parameter to use for the reCAPTCHA.
:param api_domain: Optional. The domain of the reCAPTCHA API if different from the default.
:param proxy_type: Optional. The type of the proxy (HTTP, HTTPS, SOCKS4, SOCKS5).
:param proxy_address: Optional. The address of the proxy.
:param proxy_port: Optional. The port of the proxy.
:param proxy_login: Optional. The login for the proxy.
:param proxy_password: Optional. The password for the proxy.
:return: A dictionary containing the solution of the reCAPTCHA.
"""
task = {
"type" : "RecaptchaV3TaskProxyless" ,
"websiteURL" : website_url,
"websiteKey" : website_key,
"pageAction" : page_action,
"apiDomain" : api_domain,
}
if proxy_address:
task[ "type" ] = "RecaptchaV3Task"
task[ "proxyType" ] = proxy_type
task[ "proxyAddress" ] = proxy_address
task[ "proxyPort" ] = proxy_port
task[ "proxyLogin" ] = proxy_login
task[ "proxyPassword" ] = proxy_password
return send_task(task)
Przykładowy kod Pythona do rozwiązania reCAPTCHA mobile#
def recaptcha_mobile (self, app_key: str , app_package_name: str = "" , app_action: str = "" ) -> dict :
"""
Solve Mobile reCAPTCHA challenge.
:param app_key: The app key of the Mobile reCAPTCHA.
:param app_package_name: Optional. The package name of the mobile app.
:param app_action: Optional. The action parameter to use for the Mobile reCAPTCHA.
:return: A dictionary containing the solution of the Mobile reCAPTCHA.
"""
task = {
"type" : "RecaptchaMobileProxyless" ,
"appKey" : app_key,
"appPackageName" : app_package_name,
"appAction" : app_action,
}
return send_task(task)
Wniosek#
NextCaptcha Dobrze utrzymana, aktualna i najtańsza usługa ReCaptcha Mobile Solver, stabilna pomoc techniczna 24/7
Aby pomyślnie odzyskać dane, potrzebujesz potężnego narzędzia, na którym możesz całkowicie polegać w obsłudze CAPTCHA. NextCaptcha zapewnia łatwy w konfiguracji interfejs API, który umożliwia pokonanie wszystkich wyzwań związanych z ochroną przed botami. Już dziś możesz
wypróbować go za darmo .
Więcej#