Владельцам сайтов сложно и крайне дорого содержать свою собственную систему защиты, а ещё им нужен удобный инструмент по ускорению доставки своего контента в разные удалённые регионы. Как раз тут на помощь приходят такие сервисы, как Cloudflare. Это одновременно сеть доставки контента (CDN) и веб-файрволл (WAF) с адаптивными технологиями защиты.
Но что, если вы парсите конкретный сайт и вдруг сталкиваетесь с ошибкой 1005? Это значит, что вас забанил Cloudflare, который отвечает за защиту данного ресурса.
Рассказываем о том, как обойти заблокированный сайт при возникновении ошибки с кодом 1005.
Заметки об этике парсинга
Почти всегда ошибки с запретом доступа к веб-страницам возникают из-за нарушения простейших правил поведения парсера. Набор базовых принципов скрапинга можно описать так.
- Старайтесь имитировать поведение реальных пользователей. Это касается случайных задержек между запросами, неравномерной прокрутки, шевеления курсором и пр.
- Не посещайте страницы и разделы сайта, которые не могут видеть реальные пользователи. Обычно запреты описываются в директиве robots.txt, но это могут быть и особые служебные адреса, которые видят боты, но не видят живые люди.
- Не создавайте слишком большой нагрузки на серверы. Лучше парсить в один поток, а не в несколько.
- Уважайте права на интеллектуальную собственность. Нельзя использовать чужие изображения, видео и другой контент, если это запрещено авторскими правами и правилами целевого сайта.
Но что делать, если ваш парсер обнаружили и заблокировали? Давайте сосредоточимся на этичном обходе ошибки 1005 от Cloudflare.
Причины Error 1005

Ошибка с кодом 1005 чаще всего ассоциируется с баном от сервиса Cloudflare и означает «доступ запрещён». Обычно она сопровождается формулировкой «Access denied». К такой ошибке могут привести разные сценарии. Ниже рассмотрим каждый по-отдельности.
Блокировка ASN (Autonomous System Number, номер автономной системы)
Самая распространённая и официальная причина из документации Cloudflare – это блокировка доступа к веб-странице или ко всему сайту для целой автономной подсети Интернета. В роли такой подсети, например, может выступать пул адресов вашего сетевого провайдера или хостера.
Ошибка 1005 прямо намекает на то, что Cloudflare посчитал всю подсеть источником паразитных запросов. Она могла быть заражена вирусами, ботами и т.п. Но такую блокировку могут получить: прокси-сети, VPN-сервисы, дата-центры и корпоративные сети (сети компаний).
Основная причина санкций – высокий уровень злоупотреблений: спам, боты, DDoS и т.п.
Географические / региональные ограничения
Иногда санкции накладывает не сам Cloudflare, а владелец сайта. Он особым образом настраивает логику блокировок, например, запрещает доступ к веб-страницам для конкретных подсетей (с выбранными номерами ASN), провайдеров связи или даже целых регионов: городов, стран, областей/штатов.
Причины такого поведения: лицензионные ограничения (особо актуально для онлайн-кинотеатров, стриминговых сервисов и онлайн-игр), санкции и региональные законы, а также просто нежелание обслуживать трафик из конкретной локации.
Использование VPN или прокси-сервера
Многие сайты специально блокируют популярные VPN или операторов статичных прокси через ASN или IP-диапазоны. Если вы заходите на сайт через коммерческий VPN, дата-центровый или статичный резидентный прокси с «подмоченной» репутацией, то сайт может выдать ошибку 1005.
Что выбрать: VPN или прокси?
Блокировка из-за подозрительной активности (скрапинг, боты)
При масштабном автоматизированном сборе данных, похожие запросы могут отправляться не с одного конкретного IP-адреса, а с целой подсети, например, если разработчик парсера выбрал для ротации конкретную локацию и оператора связи. Для Cloudflare это сигнал о том, что он нашёл сеть ботов и весь трафик из неё является паразитным.
Особенно часто ошибка 1005 возникает при веб-скрапинге даже без явного нарушения правил. Так срабатывают эвристические алгоритмы Cloudflare.
Что примечательно, вы сами при этом можете ничего не делать. Например, вы впервые посетили сайт, но он всё равно выдал вам ошибку 1005. Скорее всего правила нарушали другие пользователи подсети. Такое часто случается в сетях небольших провайдеров связи или в сетях операторов мобильного интернета.
А что делать с ошибкой Cloudflare 1010?
Срабатывание правил Web Application Firewall (WAF)
Если вы неправильно настроили свой парсер, например, не позаботились о естественном указании User-Agent, частоте обращений или о параметрах цифровых отпечатков, в том числе нарушаете правила работы с сайтом и директивы из robots.txt, то опять же – вполне может сработать файрволл Cloudflare.
Как этично обойти WAF при парсинге.
Другие редкие причины (не-Cloudflare контекст)
В некоторых сетевых сервисах и приложениях, например, Google IMA SDK для рекламы, Apple Family Sharing, ошибка с кодом 1005 может означать следующее:
- не удалось запросить рекламные объявления с сервера;
- проблема с безопасным подключением (http вместо https);
- уже запущенная запись/процесс на сервере, к которому вы обращаетесь;
- неправильные настройки учётной записи Family Sharing (com.apple.family.error -1005);
- недостаток прав доступа к БД или неверный синтаксис в запросе на создание таблицы (ER_CANT_CREATE_TABLE в MySQL);
- подключение блокируется брандмауэром (при загрузке игр от Rockstar Games).
Но в 95%+ случаев в вебе под ошибкой 1005 подразумевается именно Cloudflare + бан ASN. Тут стоит помнить, что внешние онлайн-сервисы и игры часто используют защиту от Cloudflare. Поэтому их ошибка 1005 означает ту же самую проблему с баном, просто она не афишируется пользователям.
Возможные способы обхода ошибки 1005 во время скрапинга

Если вы ничего не парсили, то напишите о проблеме своему провайдеру связи. Скорее всего он даже не знает о блокировке своих подсетей. Если списки систем защиты устарели или настроены неправильно, то провайдер займётся решением проблемы самостоятельно – он будет обращаться в Cloudflare. Но не ждите, что блокировка будет снята быстро. На это может уйти масса времени.
Если вы торопитесь, то попробуйте подключиться к сайту через VPN или через прокси, причём из разных локаций, чтобы не попасть в ещё одну ASN-подсеть, которая относится к списку заблокированных.
Ниже мы сосредоточимся только на решениях, которые связаны со скрапингом – разбираемся, как обойти защиту заблокированного сайта.
1. Смените настройки прокси или прокси-провайдера
Если вы для парсинга выбирали конкретное расположение (город, оператора связи или даже подсети с заданными номерами ASN), то выберите другие параметры подключения: другой город, регион или интернет-провайдера (ISP).
Если ваш прокси-провайдер имеет небольшую сеть прокси, то вполне возможно, что под блокировку попали все его серверы. В этом случае нужно поменять провайдера на более качественного.
Например, Froxy обеспечивает ротацию на основе 10+ млн IP адресов домашних и мобильных пользователей. Заблокировать такое огромное количество ASN-подсетей просто невозможно.
Если смена прокси провайдера ничего не даёт или через время ваш парсер всё равно блокируют – изучите следующие пункты.
2. Переходите на использование headless-браузеров
Классические парсеры на основе библиотек для отправки HTTP-запросов выявляются благодаря отсутствию поддержки JavaScript. Чтобы запустить и отрендерить JS-код, нужен специальный движок. А он есть только в составе полноценных браузеров.
Логика систем защиты, в том числе и Cloudflare, выстраивается примерно так: потенциальная аудитория обращается к целевому сайту либо через актуальную версию популярного браузера (а значит в нём будет поддержка JavaScript), либо через официальное мобильное приложение (приложения клиентов подписываются специальными сертификатами).
Cloudflare предварительно запускает JS-скрипт и проверяет «естественность» браузера пользователя. Если он не проходит чекап, то IP-блокируются.
Имитировать оригинальное мобильное приложение достаточно сложно, а вот браузер – вполне. Для этого достаточно настроить интеграцию с имеющимся реальным браузером через библиотеки веб-драйверов, либо установить и задействовать отдельные экземпляры headless-браузеров. За это отвечают такие готовые решения, как Puppeteer, Selenium, Playwright, chromedp и пр. Они работают на разных платформах и с разными языками программирования. Некоторые имеют возможность развёртывания на сервере, чтобы к ним можно было обратиться по API-интерфейсу из любого скрипта или программы.
Как итог:
- Подключения из headless-браузеров выглядят максимально естественно.
- При желании их можно автоматизировать – система защиты будет думать, что браузером управляет реальный пользователь.
- Браузер выполняет JavaScript, и потому результирующий код легко отфильтровать на основе видимости, это в свою очередь позволяет избежать попадания в различные ловушки, типа honeypots (это ссылки, адреса и формы, которые могут видеть только боты – на уровне HTML-кода).
3. Углубитесь в моделирование поведения и в параметры цифровых отпечатков
Алгоритмы защиты Cloudflare постоянно совершенствуются. Они в том числе научились с высокой достоверностью выявлять трафик от headless-браузеров – по ряду технических признаков и заголовков.
Существуют разные подходы к обходу защиты Cloudflare.
Но если в общих чертах, то они сводятся к:
- Маскировке следов headless-браузера (удаление специальных технических заголовков и других признаков).
- Созданию правдоподобных браузерных отпечатков и профилей (указание актуальных строк User-Agent, сохранение кук, набор истории просмотров по разным сайтам, сохранение правильного списка предустановленных шрифтов и т.п.). Подробнее о цифровых отпечатках.
- Имитации поведения пользователей – посимвольное заполнение форм ввода, перемещение курсора, естественные задержки между действиями и переходами по страницам, скроллинг и пр.
При таком подходе отделить реального пользователя от бота нереально.
Чтобы разобраться в деталях того, как целевой сайт и его системы защиты видят браузер клиента, могут подойти такие решения, как Wireshark (это анализатор сетевых запросов с открытым исходным кодом). Если WAF Cloudflare безошибочно определяет ваш парсер, но при этом не блокирует браузер реального пользователя, то вы можете сравнить запросы и выявить расхождения в отправляемых и получаемых данных.
4. Используйте облачный парсер
Вместо того, чтобы писать свой парсер с нуля и разбираться с его проблемами, можно поставить задачу на исполнение по API или через личный кабинет / дашборд в профильном сервисе. Например, Froxy Scraper – это No-code решение для сбора форматированных данных с нескольких десятков популярных площадок: поисковые системы (SERP Google, Bing, Yahoo и др.), e-Commerce, онлайн-карты, социальные сети и т.п. Если готового решения нет, то можно воспользоваться универсальным HTML-скрейпером – он сохраняет весь результирующий код страниц и дополнительно вычленяет типовые атрибуты.
Когда данные собраны и готовы к выдаче клиенту, Froxy Scraper может отправить уведомление посредством веб-хука. Соответственно, процесс скачивания и разбора данных можно автоматизировать на 100%.
О прокси здесь заботиться не нужно. Их использование и настройки уже включены в облачный парсер.
Превентивные меры

Чтобы исключить ошибку 1005 ещё на этапе проектирования своего парсера, нужно позаботиться о следующих моментах:
- Обязательно реализовать работу через прокси-сервис.
- Особое внимание нужно уделить качеству прокси и логике ротации. Если все подозрительные запросы к целевому сайту будут отправляться из одной подсети, то Cloudflare может заблокировать её всю.
- Самые правильные прокси – резидентные или мобильные с автоматической ротацией по времени или при каждом новом запросе.
- Не используйте бесплатные прокси и VPN-сервисы. Их IP-адреса с большой степенью вероятности могут быть уже в чёрных списках Cloudflare. Отсюда и ошибка с кодом 1005.
- Заранее изучите потенциальные механизмы защиты целевого сайта. Каждый слой защиты имеет свои средства и стратегии обхода. Где-то будет достаточно простых HTTP-клиентов и Beautiful Soup, а где-то придётся устанавливать headless-браузер и заботиться о правдоподобной имитации действий пользователя.
- Для изучения запросов и ответов используйте специальные инструменты – анализаторы сетевых запросов. Они ускоряют поиск отличающихся заголовков и атрибутов между реальным браузером и вашим парсером.
Больше подробностей – в материале «Парсим как профи! Лучшие практики для веб-скрапинга без блокировок».
Заключение
Ошибка с кодом 1005 показывается, когда целевой сайт использует защиту от Cloudflare. При этом сама ошибка с кодом 1005 означает, что WAF Cloudflare заблокировал не один конкретный IP-адрес, а целую подсеть (ASN). Это может произойти по разным причинам, но алгоритм обхода при парсинге только один – смена локации и выходного IP на другие.
Ключевой фактор – качество прокси. Бесплатные прокси и VPN легко обнаруживаются и потому попадают в чёрные списки. Ротируемые резидентные или мобильные прокси лишены такого недостатка – расположение IP и ASN можно менять сколько угодно, без покупки новых прокси.

