Блог
Как решить ошибку DataDome 403 Forbidden при веб-скрапинге | Полное решение

Как решить ошибку DataDome 403 Forbidden при веб-скрапинге | Полное решение

Logo of Capsolver

CapSolver Blogger

How to use capsolver

05-Jun-2024

Столкновение с ошибкой DataDome 403 Forbidden является распространенной проблемой для веб-скреперов. DataDome, мощная служба защиты от ботов, использует передовые методы для идентификации и блокировки автоматического трафика. Это руководство предоставит комплексное решение для устранения ошибки DataDome 403 Forbidden, обеспечивая непрерывный доступ к нужному контенту.

Содержание

  • Что такое DataDome и ошибка 403 Forbidden
  • Что вызывает ошибку DataDome 403 Forbidden при веб-скрепинге?
  • Как устранить ошибку DataDome 403 Forbidden
    • Использование Capsolver для устранения ошибки 403 Forbidden
    • Использование высококачественных прокси
    • Изменение отпечатков устройства
    • Мониторинг и настройка вашей конфигурации
  • Заключение

Что такое DataDome и ошибка 403 Forbidden

DataDome — это ведущие решения для защиты от ботов и кибербезопасности, предназначенные для обнаружения и смягчения автоматических угроз в режиме реального времени.

Основные функции DataDome включают:

  • Обнаружение на основе ИИ: Использует передовые модели машинного обучения для различения человеческого и бот-трафика.
  • Защита в реальном времени: Непрерывно мониторит и защищает веб-приложения, мобильные приложения и API.
  • Всеобъемлющая защита: Обеспечивает безопасность различных цифровых точек взаимодействия, включая веб-сайты, мобильные приложения и API от автоматических угроз.
  • Адаптивная безопасность: Постоянно развивается для решения новых и возникающих угроз.

Понимание ошибки 403 Forbidden

Ошибка 403 Forbidden — это код состояния HTTP, указывающий на то, что сервер понимает запрос, но отказывается его авторизовать. Когда задействован DataDome, эта ошибка обычно означает, что запрос был идентифицирован как потенциально вредоносный или исходящий от автоматического источника, и доступ к запрашиваемому ресурсу заблокирован.

Боретесь с повторяющимися неудачами при полной разгадывании раздражающей CAPTCHA?

Откройте для себя бесшовное автоматическое решение CAPTCHA с помощью технологии Capsolver AI-powered Auto Web Unblock!

Получите свой Бонусный код для лучших решений CAPTCHA; CapSolver: WEBS. После его активации вы получите дополнительный бонус в размере 5% после каждой перезарядки, неограниченно.

Что вызывает ошибку DataDome 403 Forbidden при веб-скрепинге?

Чтобы решить проблему, сначала нужно понять, что ее вызывает. Обычно ошибки DataDome 403 Forbidden возникают, когда меры безопасности DataDome обнаруживают и блокируют активность веб-скрепинга. Это может произойти по различным причинам:

  1. Блокировка IP
    Когда вы часто скрепируете веб-контент, ваш IP-адрес может быть обнаружен и заблокирован. Использование низкокачественных прокси-IP также может привести к отказу в доступе с кодом состояния 403. Чтобы смягчить это, рассмотрите возможность использования высококачественных, вращающихся прокси для распределения ваших запросов и избегания обнаружения.

  2. Обнаружение среды устройства
    DataDome отслеживает среду вашего устройства, включая такие детали, как информация о GPU и отпечатки Canvas. Если ваша среда устройства кажется аномальной, это может привести к отказу в доступе с кодом состояния 403. Более того, если ваше устройство выполняет какие-либо подозрительные действия, DataDome может навсегда забанить ваше устройство. Чтобы избежать обнаружения, убедитесь, что ваша среда устройства имитирует типичную настройку пользователя и избегайте необычных конфигураций или поведений.

  3. Обнаружение безголовых браузеров
    DataDome проверяет вашу среду браузера для идентификации безголовых браузеров. Если вы используете Puppeteer или Selenium для работы с безголовым браузером, DataDome распознает это как аномальную среду. Чтобы обойти это обнаружение, вы можете попытаться сделать ваш безголовый браузер похожим на обычный браузер, изменяя настройки и поведение браузера, такие как включение JavaScript, установка строк пользовательского агента и управление куки и локальным хранилищем в соответствии с обычной активностью пользователя.

Как устранить ошибку DataDome 403 Forbidden

Столкновение с ошибкой DataDome 403 Forbidden может помешать вам получить доступ к нужным данным, что может превратить веб-скрепинг в очень разочаровывающее занятие. После понимания причин этих проблем мы опишем несколько эффективных способов их решения, начиная с самого эффективного и простого метода.

1. Использование Capsolver для устранения ошибки 403 Forbidden

Обычно рекомендуется использовать стороннее решение для разгадывания CAPTCHA, которое можно внедрить в ваш ежедневный рабочий процесс с помощью API, чтобы сделать ошибку 403 практически незаметной. Одним из лучших решений является CapSolver, которое представляет собой решение для распознавания CAPTCHA на основе машинного обучения, способное легко решить проблему DataDome и раздражающую ошибку 403 за 3-5 секунд.

Для разгадывания CAPTCHA с помощью CapSolver, пример кода на Python следующий:

# -*- coding: utf-8 -*-
import requests
import time


api_key = "API_KEY"     # TODO: ваш ключ API
proxy = "host:port:name:pass"   # TODO: ваш прокси
page_url = "https://www.targetsite.com/"   # TODO: целевой сайт
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"


def get_token(captcha_url):
    print("вызов capsolver...")
    data = {
        "clientKey": api_key,
        "task": {
            "type": 'DatadomeSliderTask',
            "websiteURL": page_url,
            "captchaUrl": captcha_url,
            "userAgent": user_agent,
            "proxy": proxy,
        },
    }
    uri = 'https://api.capsolver.com/createTask'
    res = requests.post(uri, json=data)
    resp = res.json()
    task_id = resp.get('taskId')
    if not task_id:
        print("ошибка создания задачи:", res.text)
        return

    while True:
        time.sleep(1)
        data = {"clientKey": api_key, "taskId": task_id}
        res = requests.post('https://api.capsolver.com/getTaskResult', json=data)
        resp = res.json()
        status = resp.get('status', '')
        if status == "ready":
            cookie = resp['solution']['cookie']
            cookie = cookie.split(';')[0].split('=')[1]
            print("успешно получен cookie:", cookie)
            return cookie
        if status == "failed" или resp.get("errorId"):
            print("не удалось получить cookie:", res.text)
            return
        print('статус решения datadome:', status)


def format_proxy(px: str):
    if '@' not in px:
        sp = px.split(':')
        if len(sp) == 4:
            px = f'{sp[2]}:{sp[3]}@{sp[0]}:{sp[1]}'
    return {"http": f"http://{px}", "https": f"http://{px}"}


def request_site(cookie):
    headers = {
        'content-type': 'application/json',
        'user-agent': user_agent,
        'accept': 'application/json, text/plain, */*',
        'sec-fetch-site': 'same-origin',
        'sec-fetch-mode': 'cors',
        'sec-fetch-dest': 'empty',
        'referer': page_url,
        'accept-encoding': 'gzip, deflate, br, zstd```python
        'accept-language': 'en-US,en;q=0.9',
    }
    if cookie:
        headers['cookie'] = "datadome=" + cookie

    print("запрос url:", page_url)
    response = requests.get(page_url, headers=headers, proxies=format_proxy(proxy))
    print("статус ответа:", response.status_code)
    if response.status_code == 403:
        resp = response.json()
        print("url капчи: ", resp['url'])
        return resp['url']
    else:
        print('cookie действителен!')
        return


def main():
    url = request_site("")
    if not url:
        return
    if 't=bv' in url:
        print("заблокированный url капчи не поддерживается")
        return
    cookie = get_token(url)
    if not cookie:
        return
    request_site(cookie)


if __name__ == '__main__':
    main()

2. Использование высококачественных прокси

  • Избегайте низкокачественных прокси: Использование низкокачественных или бесплатных прокси может легко привести к их обнаружению и блокировке DataDome. Инвестируйте в высококачественные, вращающиеся прокси, которые могут распределять ваши запросы по нескольким IP-адресам, чтобы избежать обнаружения.
  • Регулярное изменение IP-адресов: Регулярное изменение IP-адресов может предотвратить флагирование любого отдельного IP за подозрительную активность.

3. Изменение отпечатков устройства

  • Подделка информации об устройстве: Измените отпечаток вашего устройства, изменив информацию о GPU, отпечатки Canvas и другие аппаратные детали, чтобы выглядеть как обычный пользователь.
  • Избегайте использования безголовых браузеров: Безголовые браузеры легко обнаруживаются. Если вам нужно их использовать, настройте их так, чтобы они выглядели как браузеры с графическим интерфейсом. Это может включать установку правильных строк пользовательского агента, включение изображений и обеспечение полной работоспособности JavaScript.

4. Мониторинг и настройка вашей конфигурации

  • Регулярная проверка изменений: DataDome часто обновляет свои механизмы обнаружения. Регулярно проверяйте и настраивайте свою конфигурацию, чтобы опережать новые методы обнаружения.
  • Тестирование в различных средах: Проводите тесты в различных средах, чтобы увидеть, как реагирует DataDome. Это поможет вам определить, какие конфигурации наиболее эффективны для избегания обнаружения.

Заключение

DataDome — мощное решение для кибербезопасности, которое обеспечивает комплексную защиту от автоматических угроз, часто приводя к ошибкам 403 Forbidden при обнаружении подозрительной активности. Понимая, как работает DataDome, и применяя соответствующие методы для имитации поведения законного пользователя, вы можете эффективно решить эти ограничения и сохранить доступ к вашим целевым ресурсам.

Ещеe

API против парсинга
API против парсинга: лучший способ получения данных

Разберитесь в различиях, плюсах и минусах веб-скрапинга и API-скрапинга, чтобы выбрать лучший метод сбора данных. Изучите CapSolver для решения задач, связанных с ботами.

The other captcha

16-Jul-2024

Использование Selenium и C# для автоматизации вызовов CAPTCHA
Использование Selenium и C# для автоматизации вызовов CAPTCHA

В конце этого урока вы будете иметь полное представление о том, как решить CAPTCHA с помощью Selenium C#.

The other captcha

11-Jul-2024

Что такое Puppeteer
Что такое Puppeteer и как его использовать для веб-скрапинга | Полное руководство 2024

Это полное руководство расскажет о том, что такое Puppeteer и как эффективно использовать его для веб-скрапинга

The other captcha

10-Jul-2024

Что такое веб-скрейпинг
Что такое веб-скрейпинг | Распространенные случаи использования и проблемы

Познакомьтесь с веб-скреппингом: узнайте о его преимуществах, легко справляйтесь с проблемами и развивайте свой бизнес с помощью CapSolver.

The other captcha

05-Jul-2024

CapSolver Dashboard 3.0!
Повышайте уровень с CapSolver Dashboard 3.0!

CapSolver Dashboard 3.0 обновлён с улучшенным взаимодействием и множеством новых функций.

The other captcha

04-Jul-2024

Решение проблемы captcha в selenium python
Как решить CAPTCHA в Selenium на Python | Полное руководство 2024

Легко решайте проблемы с CAPTCHA в Selenium Python с помощью нашего подробного руководства. Узнайте, как использовать инструменты CapSolver для выполнения автоматизации.

The other captcha

04-Jul-2024