Здравствуйте, меня зовут Максим Кульгин. Моя компания xmldatafeed.com занимается парсингом много лет. На днях мы вернули 16 000 руб. клиенту, так как не смогли парсить весь iherb.com с нужной клиенту скоростью. Проверил и оказалось, что это единичный случай за весь год и родилась эта, чуть-чуть философская статья.
На самом деле весь парсинг можно переиграть и уничтожить в один клик с помощью связки сервисов Cloudflare + Antubot.Cloud.
Сайты, которые готовы отдавать свои данные по API - окай, парсите вдоль и поперек хоть круглосуточно, но на сайты с небольшой посещаемостью (менее 50к юзеров в сутки) как правило оказывается чрезмерная нагрузка на веб-сервер. По сути - паразитный трафик, который нужно чистить.
И так, в качестве первого барьера защиты будем юзать Cloudflare:
- разрешаем полный доступ всем известным ботам поисковых систем, социальных сетей, собственным серверам, api и так далее;
- принудительная проверка при попытке доступа к сайту из всех стран, кроме России (или стран на которые ориентирован сайт), а также блокировка по user-agent десятков сервисов анализа и мониторинга конкурентов;
- все запросы с ipv6 или по http получат принудительную проверку. Большие пулы адресов ipv6 можно получить очень дешево, чуть ли не бесплатно. Их используют для парсинга, накрутки и манипуляций, от которых мы хотим защититься. В мобильных сетях рунета ipv6 распространен очень слабо, в основном у МТС.
- трафик с протоколами ниже http/2 и все прямые заходы попадают на 5-ти секундную JS-проверку. Данное правило отлично фильтрует паразитный трафик и сотни тысяч тонн непотребства ежедневно.
К сожалению, Cloudflare не избавляет нас от хорошо продуманных поведенческих ботов, а это значит, что сайту могу скрутить поведенческие факторы и по прежнему украсть контент, спарсить цены и так далее. Специально для таких хитропопых имеется второй барьер защиты.
Переходим к настройке Antibot.Cloud:
- при высокой паразитной активности ставим срок жизни куков - 1 день;
- в блокирующие правила импортируем десятки известных user-agent'ов от популярных сервисов парсинга и анализа сайтов;
- включаем recapcha v3;
- в качестве проверки ставим кнопки с выбором цвета (упрощенная динамическая капча);
- проверяем запросы по get "q и text" - так часто ломятся боты с имитацией перехода из поиска Яндекса или Google;
- в принудительную проверку улетают все запросы к сайту без реферера и языка браузера.
Что имеем в итоге:
- защиту от поведенческих и спам-ботов;
- защиту от любых парсеров (любые прокси, http-заголовки и user-agent не имеют значения);
- защиту от фейк-ботов с user-agent как у официальных роботов поисковых систем;
- защиту от проксирования сайта дорвеями;
- проверку ботов по PTR-записям;
- значительное снижение нагрузки на веб-сервер;
- значительную очистку трафика от мусора;
- защиту от воровства контента и автоматизированной конкурентной разведки (вручную получить доступ к сайту все равно получится).
При этом большинство пользователей с белыми fingerprints, cookies и ip проходят проверку автоматически. Боты поисковых систем, шлюзы оплаты, и прочие "белые" боты вообще не видят наличия каких-либо фаерволов.
Сайт получается конкурентное преимущество, так как теперь вытягивать фишки, цены и контент можно только вручную, что просто отлично, ведь конкуренты будут тратить на это намного больше времени, сил и денег.
Оба сервиса облачные, так что все эти мусорные запросы даже не дойдут до веб-сервера на котором развернут сайт и застрянут в Cloudflare или Antibot'е.
Комментарий недоступен
с таким подходом, такое чувство что на сайте как минимум - гостайна))
—-
это же просто интернет магазин с актуальными ценами и картинками
Защита от Cloudfrlare обходится двумя строчками кода, если чё.
Можно дополнить, что скоро еще можно будет блочить тех, у кого нет поддержки http/3. Один из способов выявления vpn. И exit-ноды тора тоже резать.
нет способа защититься от парсинга, все ваши методы - способы сделать парсинг "дороже", вплоть до того что бы каптчу решать индусом (что, кстати, вполне дешево, если миксовать с machine learning - такие сервисы тоже есть)
Вся ваша схема разрушается если парсеру в качестве юзер агента указать юзер агент какого нибудь гугл бота или любого мобильного устройства)
Для парсинга через cloud flare есть готовые инструменты %)
Пример такого сайта в студию. Попробуем обойти.
Комментарий недоступен
Cloudflare от режима зависит.
Есть вот несколько сайтов с который мне надо контент стягивать спецботом. Контнетн в принципе доступен для чтения бесплатно.
Речь не про что-то для работы и платить за доступ в принципе устроит. Контент тестовый и обычно раскидан по куче страниц + метаданные.
Часть сайтов - дают пользователем тем кто оплатил им премиум именно скачивать в нормальном но спецботом удобнее, Cloudflare использовали но в беззубом режиме и обходилось просто переключением VPN или увеличением задержек да и то надо было если совсем уж наглеть
часть сайтов - решили что будут бороться, скачивать не дадут никак, те кто используют спецбот мол создают им нагрузку и вообще ужас ужас. И поставили Cloudflare в параноидном режиме. Вообщем проблема обходится другим спецботом специально под них, который просто имеет встроенный браузер.