Join And Get Free Trial!

come risolvere recaptcha durante il web scraping nel 2024 con il risolutore recaptcha#

logoNextCaptcha
May 20,2024

Panoramica di reCAPTCHA#

reCAPTCHA è un servizio gratuito fornito da Google che aiuta a proteggere i siti Web da spam e abusi. Utilizza tecniche avanzate di analisi del rischio e sfide adattative per distinguere gli esseri umani dai robot. Il termine "CAPTCHA" sta per "Test di Turing pubblico completamente automatizzato per distinguere i computer dagli esseri umani". Nel corso degli anni ci sono state diverse versioni di reCAPTCHA:
  • reCAPTCHA v1: Questa era la versione originale che presentava agli utenti un testo distorto che dovevano decifrare e inserire in una casella. Ciò era utile per digitalizzare libri e altri materiali stampati, ma spesso era difficile da risolvere per gli esseri umani.

    • nextcaptcha recaptcha-badge

  • reCAPTCHA v2: Questa versione ha introdotto la casella di controllo "Non sono un robot" su cui gli utenti vengono invitati a fare clic. Se il sistema non è sicuro se l'utente sia umano o meno, presenterà ulteriori sfide, come l'identificazione degli oggetti nelle immagini.

    • nextcaptcha RecaptchaLogo

  • reCAPTCHA v3: Questa versione funziona in background e non interrompe gli utenti con le sfide. Assegna invece un punteggio di rischio a ciascun visitatore in base alle sue interazioni con il sito web. I proprietari dei siti web possono quindi utilizzare questo punteggio per decidere come gestire il visitatore (ad esempio, bloccare, presentare una sfida, ecc.).

    • nextcaptcha solve-recaptcha-enterprise

Risolvere reCAPTCHA#

Prerequisiti#

  • Richiedi biblioteca
    • usiamo la richiesta Python per il codice di esempio
  • Chiave client NextCaptcha

ottieni la chiave client NextCaptcha dalla dashboard#

Iscriviti a NextCaptcha per ottenere immediatamente la tua chiave API gratuita e crediti di prova gratuiti.

codice Python per risolvere 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)
 

codice di esempio Python per risolvere 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)

codice di esempio Python per risolvere 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)

codice di esempio Python per risolvere 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)
 

codice di esempio Python per risolvere 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)
 

Conclusione#

NextCaptcha Servizio ReCaptcha Mobile Solver altamente mantenuto, aggiornato ed economico, supporto stabile 24 ore su 24, 7 giorni su 7
Per un recupero dei dati di successo, è necessario uno strumento potente su cui fare affidamento completamente per gestire i CAPTCHA. NextCaptcha fornisce un'API facile da configurare che ti consente di superare tutte le sfide anti-bot e puoi provala gratuitamente oggi.

Di più#