Join And Get Free Trial!

comment résoudre recaptcha lors du web scraping en 2024 avec le solveur recaptcha#

logoNextCaptcha
May 20,2024

Présentation de reCAPTCHA#

reCAPTCHA est un service gratuit fourni par Google qui aide à protéger les sites Web contre le spam et les abus. Il utilise des techniques avancées d’analyse des risques et des défis adaptatifs pour distinguer les humains des robots. Le terme « CAPTCHA » signifie « Test de Turing public entièrement automatisé pour distinguer les ordinateurs des humains ». Il existe plusieurs versions de reCAPTCHA au fil des ans :
  • reCAPTCHA v1: Il s'agissait de la version originale qui présentait aux utilisateurs un texte déformé qu'ils devaient déchiffrer et saisir dans une case. Cela était utile pour numériser des livres et d’autres documents imprimés, mais c’était souvent difficile à résoudre pour les humains.

    • nextcaptcha recaptcha-badge

  • reCAPTCHA v2: Cette version a introduit la case à cocher « Je ne suis pas un robot » sur laquelle les utilisateurs sont invités à cliquer. Si le système ne sait pas si l'utilisateur est humain ou non, il présentera des défis supplémentaires, tels que l'identification d'objets dans les images.

    • nextcaptcha RecaptchaLogo

  • reCAPTCHA v3: Cette version s'exécute en arrière-plan et n'interrompt pas les utilisateurs avec des défis. Au lieu de cela, il attribue un score de risque à chaque visiteur en fonction de ses interactions avec le site Web. Les propriétaires de sites Web peuvent ensuite utiliser ce score pour décider comment gérer le visiteur (par exemple, bloquer, présenter un défi, etc.).

    • nextcaptcha solve-recaptcha-enterprise

Résoudre reCAPTCHA#

Conditions préalables#

  • Demander une bibliothèque
    • nous utilisons la requête python comme exemple de code
  • Clé client NextCaptcha

obtenir la clé client NextCaptcha à partir du tableau de bord#

Inscrivez-vous à NextCaptcha pour obtenir immédiatement votre clé API gratuite et vos crédits d'essai gratuits.

code python pour résoudre 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)
 

exemple de code python pour résoudre 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)

exemple de code python pour résoudre 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)

exemple de code python pour résoudre 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)
 

exemple de code python pour résoudre 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)
 

Conclusion#

NextCaptcha Service ReCaptcha Mobile Solver hautement entretenu, à jour et le moins cher, support stable 24h/24 et 7j/7
Pour une récupération de données réussie, vous avez besoin d'un outil puissant sur lequel vous pouvez vous appuyer entièrement pour gérer le CAPTCHA. NextCaptcha fournit une API facile à configurer qui vous permet de surmonter tous les défis anti-bot, et vous pouvez l'essayer gratuitement dès aujourd'hui.

Plus#