Join And Get Free Trial!

как решить рекапчу при парсинге веб-страниц в 2024 году с помощью программы рекапчи#

logoNextCaptcha
May 20,2024

Обзор reCAPTCHA#

reCAPTCHA – это бесплатная служба Google, которая помогает защитить веб-сайты от спама и злоупотреблений. Он использует передовые методы анализа рисков и адаптивные задачи, чтобы отличить людей от ботов. Термин «CAPTCHA» означает «Полностью автоматизированный публичный тест Тьюринга, позволяющий отличить компьютеры от людей». За прошедшие годы существовало несколько версий reCAPTCHA:
  • reCAPTCHA v1: Это была оригинальная версия, в которой пользователям предлагался искаженный текст, который им приходилось расшифровывать и вводить в поле. Это было полезно для оцифровки книг и других печатных материалов, но людям часто было трудно решить эту задачу.

    • nextcaptcha recaptcha-badge

  • reCAPTCHA v2: В этой версии появился флажок «Я не робот», который пользователям предлагается щелкнуть. Если система не уверена, является ли пользователь человеком или нет, у нее возникнут дополнительные проблемы, например, идентификация объектов на изображениях.

    • nextcaptcha RecaptchaLogo

  • reCAPTCHA v3: Эта версия работает в фоновом режиме и не мешает пользователям решать проблемы. Вместо этого он присваивает оценку риска каждому посетителю на основе его взаимодействия с веб-сайтом. Владельцы веб-сайтов могут затем использовать эту оценку, чтобы решить, как обращаться с посетителем (например, заблокировать, бросить вызов и т. д.).

    • nextcaptcha solve-recaptcha-enterprise

Решение reCAPTCHA#

Предварительные условия#

  • Запросить библиотеку
    • мы используем запрос Python для примера кода
  • СледующийКлюч клиента Captcha

получите ключ клиента NextCaptcha с панели управления#

Зарегистрируйтесь в NextCaptcha, чтобы немедленно получить бесплатный ключ API и бесплатные пробные кредиты.

код Python для решения 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)
 

Пример кода Python для решения 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)

Пример кода Python для решения 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)

Пример кода Python для решения 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)
 

Пример кода Python для решения reCAPTCHA на мобильных устройствах#

 
    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)
 

Заключение#

NextCaptcha Высоко поддерживаемый, актуальный и дешевый сервис ReCaptcha Mobile Solver, стабильная круглосуточная поддержка.
Для успешного получения данных вам нужен мощный инструмент, на который можно полностью положиться при обработке CAPTCHA. NextCaptcha предоставляет простой в настройке API, который позволит вам преодолеть все проблемы защиты от ботов, и вы можете попробовать его бесплатно уже сегодня.

Более#