Join And Get Free Trial!

como resolver recaptcha durante web scraping em 2024 com o solucionador de recaptcha#

logoNextCaptcha
May 20,2024

Visão geral do reCAPTCHA#

reCAPTCHA é um serviço gratuito fornecido pelo Google que ajuda a proteger sites contra spam e abusos. Utiliza técnicas avançadas de análise de risco e desafios adaptativos para distinguir humanos de bots. O termo "CAPTCHA" significa "Teste de Turing Público Completamente Automatizado para diferenciar computadores de humanos". Houve várias versões do reCAPTCHA ao longo dos anos:
  • reCAPTCHA v1: Esta era a versão original que apresentava aos usuários um texto distorcido que eles tinham que decifrar e inserir em uma caixa. Isso era útil para digitalizar livros e outros materiais impressos, mas muitas vezes era difícil de ser resolvido pelos humanos.

    • nextcaptcha recaptcha-badge

  • reCAPTCHA v2: Esta versão introduziu a caixa de seleção "Não sou um robô" na qual os usuários devem clicar. Se o sistema não tiver certeza se o usuário é humano ou não, apresentará desafios adicionais, como a identificação de objetos em imagens.

    • nextcaptcha RecaptchaLogo

  • reCAPTCHA v3: Esta versão é executada em segundo plano e não interrompe os usuários com desafios. Em vez disso, atribui uma pontuação de risco a cada visitante com base nas suas interações com o site. Os proprietários de sites podem então usar essa pontuação para decidir como lidar com o visitante (por exemplo, bloquear, apresentar um desafio, etc.).

    • nextcaptcha solve-recaptcha-enterprise

Resolvendo reCAPTCHA#

Pré-requisitos#

  • Solicitar biblioteca
    • usamos a solicitação python para exemplo de código
  • Chave do cliente NextCaptcha

obtenha a chave do cliente NextCaptcha no painel#

Inscreva-se no NextCaptcha para obter sua chave de API gratuita e créditos de teste gratuitos imediatamente.

código python para resolver 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)
 

código de exemplo python para resolver 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)

código de exemplo python para resolver 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)

código de exemplo python para resolver 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)
 

código de exemplo python para resolver 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)
 

Conclusão#

NextCaptcha Serviço ReCaptcha Mobile Solver altamente mantido, atualizado e mais barato, suporte estável 24 horas por dia, 7 dias por semana
Para uma recuperação de dados bem-sucedida, você precisa de uma ferramenta poderosa na qual confiar totalmente para lidar com CAPTCHA. NextCaptcha fornece uma API fácil de configurar que permite superar todos os desafios anti-bot, e você pode experimentá-la gratuitamente hoje mesmo.

Mais#