{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Можно ли защитить свой сайт от парсинга? Нет, и вот почему

Моя компания занимается парсингом интернет-магазинов в России уже более трёх лет, ежедневно мы парсим около 400 крупнейших сайтов в РФ. И еще не встречали защиты, которую мы не смогли бы обойти.

За последние годы мы реализовали множество проектов, связанных с получением данных крупнейших сайтов. Это, например, HeadHunter, «Яндекс.Еда», Beru.ru, «Ламода». И сегодня спрашиваем сами себя — можно ли защититься от этого? Более того, к нам уже обращаются компании, которые просят проверить свою защиту от парсинга "извне" так сказать. Расскажем чуть подробнее сложности, с которыми вы столкнетесь, если решите заняться защитой от парсинга.

Вначале - что такое Скрапинг, или парсинг? Это сбор данных с различных интернет-ресурсов. Общий принцип работы можно объяснить так: боты обращаются к открытым страницам целевого сайта, получают HTML-код, разбирают его на составляющие (парсят), ищут нужные данные и сохраняют в своей базе данных. Таким образом получается «чистая» копия данных, хранящихся на сайте, — товаров, резюме, изображений, текстов. Если над одним сайтом проводить парсинг регулярно, то можно отслеживать изменения. Например, наблюдать за изменением цен или товарных запасов. Самыми заметными парсерами являются поисковые системы. «Яндекс» и Google напрямую занимаются парсингом: они заходят на сайт и индексируют его — собирают информацию. Защищаясь от парсинга, подумайте — не заблокируете ли вы заодно и свое присутствие в поисковиках и любимый SEO?

У людей, далеких от IT, присутствует эдакое идеализированное представление о программировании как в компьютерных играх 80-х: вы надеваете шлем виртуальной реальности и погружаетесь в «Матрицу». На самом деле вся информация и все взаимодействия — это нули и единицы. Здесь нет ничего человеческого. Нет различия между данными, введенными компьютером или человеком.

Для вашего веб-сервера все равно, кто запрашивает данные — бот или человек. Оба они делают это одинаково. Если посетители могут получить доступ к контенту на вашем сайте, то и наш бот сможет получить такой же доступ (с вероятностью 99%). Все технологические решения против парсинга могут помешать реальным пользователям в той же мере, что и ботам.

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

Техническая защита от парсинга

Блокировка "плохого" юзер-агента

Любой запрос к веб-серверу содержит заголовки, в том числе данные о браузере — так называемый юзер-агент (user agent), идентификатор клиента.

Решение: заголовки меняются произвольным образом и любой бот может имитировать реальных пользователей. Более того, на нашей стороне HTTP-заголовки рандомизируются (если это необходимо) между сеансами парсинга, поэтому так заблокировать бот невозможно.

Блокировка IP-адресов

Хорошо, заголовки можно произвольно менять, но невозможно менять IP-адрес, с которого обращается клиент. Можно же определить адреса ботов и заблокировать их?

Решение: «поддельные» IP-адреса — прокси. Это более сложно, чем подмена HTTP-заголовков, но тоже ничего экстраординарного. Мы используем комбинацию из ротации запросов и ротации IP-адресов, чтобы избежать идентифицируемых шаблонов поведения бота. У нас есть доступ к большому количеству IP-адресов, к тому же, как и в предыдущем случае, по IP-адресу отделить ботов от живых пользователей практически невозможно.

Да, есть списки прокси, провайдеров и т. п., которые можно блокировать. Но, во-первых, так вы отсечете и живых пользователей, а во-вторых, живых прокси гораздо больше, чем «черных списков», и всех заблокировать вряд ли возможно.

Использование капчи (captcha)

Конечно, вы можете добавить капчу для ограничения доступа в определенные разделы сайта или ограничения определенных действий.

Решение: API для решения капчи. Капча только добавит неудобств обычным пользователям. Все методы капчи (в том числе для reCAPTCHA от Google) легко обходятся с помощью сторонних сервисов, вроде 2Captcha, в которых реальные люди решают задачи, поставленные перед нашими ботами. Стоимость услуг минимальна (например, 100 рублей за 1000 задач).

Невидимая капча

Ваш сайт может анализировать поведение определенной сессии — использовать так называемую невидимую капчу. Невидимая капча использует комбинацию различных переменных для оценки вероятности того, что данный клиент является ботом.

Нет единого рецепта, как это реализовать. Различные провайдеры используют разные параметры для профилирования пользователей. Эта услуга предоставляется некоторыми CDN (например, Cloudflare) и традиционными провайдерами капчи, например Google reCAPTCHA.

Решение: даже пока не требуется, так как технология на самом деле не работает для ботов, а обычным пользователям только мешает (иногда).

По словам бывшего руководителя отдела Google по распознаванию кликфрода Шумана Гоземаджумдера, невидимая капча «просто создает новый тип задач, с которыми продвинутые боты по-прежнему справляются, а для людей они становятся большой проблемой».

Проверка электронной почты

Вы можете проверять живых пользователей по электронной почте — например, просить регистрацию для доступа на форум или для показа товарных запасов.

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

Изменение структуры сайта

Сайт может время от времени менять структуру, и в ответ на запрос HTML-код будет меняться.

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

  • изменения структуры для вас «стоит» больше сил и времени, чем для нас;
  • наши системы уведомят, как только это произойдет;
  • это повлияет также на реальных пользователей.

Что еще можно применить?

Есть еще несколько методов защиты, которые можно применять, — это защита на уровне SMS-верификации, защита на уровне API с помощью ключа, на уровне фреймворков. Были даже предложения сделать Flash-версию сайта или генерить страницы в виде картинок.

Но все они либо также достаточно понятно обходятся (с помощью других фреймворков или системных утилит), либо катастрофичны для бизнеса с точки зрения пользовательского опыта (представляете магазин на Flash в 2019 году?). Так что мы в данной статье их рассматривать не будем. Если хотите обсудить — напишите в комментариях, и я расскажу подробнее о каждом случае.

Блокировка 98% парсеров

Хотя нельзя заблокировать все парсеры, вы можете помешать или заблокировать самые простые из них (а таких большинство), используя комбинацию вышеуказанных методов.

Стоит ли это ваших усилий? Ответ зависит от следующих факторов:

  • Какое влияние оказывают боты на ваш сайт/бизнес?
  • Повлияет ли это на реальных пользователей?

Чаще всего ответ заключается в том, что оно того не стоит.

Моральная защита

Как мы выяснили, технически побороть парсеры вряд ли получится. После этого большинство компаний переходят из области IT в область морали и пытаются представить тех, кто занимается скрапингом, в невыгодном свете. Рассмотрим их возражения.

Боты создают нагрузку

Скорее всего, правильно и разумно спроектированные боты обращаются к сайту 1–2 раза в секунду, что никакой нагрузки на сайт, который должен выдерживать сотни запросов в секунду, не создает. Да, есть "умельцы" которые совершенно не думают о владельцах сайтов и запускают парсинг в 100 потоков формируя просто запредельную паразитную нагрузку.

Вы тратите деньги компании, которая содержит сайт!

В общем случае — тоже нет. Электронный магазин или каталог товаров ничего от парсинга не теряет: трафик у него практически неограниченный, нагрузки боты, как мы говорили выше, не создают.

Безусловно, есть частные случаи. Например, мы хотели анализировать цены на авиабилеты, но оказалось, что получение любых запросов о стоимости перелета и наличии билетов обходится агрегаторам в определенную сумму. И если парсить их, то это приведет к неким неоправданным затратам (это не точно). Для нас самих это является некой моральной дилеммой, которую мы так и не смогли разрешить, а потому билеты мы так и не парсим, хотя запросы поступают регулярно. С другой стороны, если люди создают ресурс в общий доступ, нужно быть готовым к тому, что туда "прибегут боты", если не наши, так других исполнителей. И получается, отказываясь от парсинга мы просто перенаправляем поток денег за эту услугу конкурентам :)

Парсинг сайтов незаконен!?

Владелец сайта не может технически заблокировать ботов. Но есть ли у него юридические инструменты для этого?

Короткий ответ: нет. Ни в России, ни в США автоматизированное получение открытой информации с сайта не является преступлением.

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

Резюме

Собирая данные с топ-100 российских eCommerce-магазинов, мы сталкивались с совершенно разными механизмами блокировок, но итог один: данные собираются.

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

Ни один из этих методов не блокирует ботов, а внедрение некоторых или всех этих механизмов дорого обойдется компании с точки зрения 1) стоимости технической разработки и 2) неудобств для реальных пользователей.

Как мне кажется, гораздо интереснее для компании сделать и развивать свой открытый API, который будет предоставлять доступ к данным. За открытыми данными и созданием экосистем будущее.

p.s. пожалуй один из действенных и дешёвых способов частично противодействовать парсингу — ставить на фотографии свои ватермарки. Текстовая информация без прилагающихся изображений резко теряет в цене, не во всех случаях, конечно, но в подавляющем большинстве из них. Так что, хотите уберечь свой интернет-магазин от парсеров— проставьте свои водяные знаки на фотографии товаров.

0
141 комментарий
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
41 комментарий
Aleksei Novikov

Где еще я не видел вброса про "сопротивление парсингу бесполезно"... Однако, 99% ботов отсекаются довольно-таки простыми средствами. Оставшемуся 1%  приходится использовать гораздо более дорогие ресурсы и сетки резидентальных проксей, которые и медленнее, и тоже палятся рано или поздно, и дороже.

Ответить
Развернуть ветку
Александр Ерёмин

Можете поподробнее описать средства отсечения 99% ботов?

Ответить
Развернуть ветку
5 комментариев
Евгений Морозов

Чел тебя не в России так в Европе или Америке засудят, когда компании подадут в суд на владельца вашего домена или компании, поверь за ворованные с фотостоков фотки прилетает по шапке... хули ты хвалишься что вы там умеете там парсить данные с чужих сайтов компаний, некоторые сайты в открытую предоставляют доступ к API. 
Парсинг тебе никак не поможет т.к. контент вторичен для поисковых систем - и там идут в бой уже механизмы - факторы реального поведения, 1 чел никогда не сможет разместить 10000 контента в день, в итоге твой сайт уйдет в пессимизацию как ГС (govnosite).

Ответить
Развернуть ветку
Станислав Калашников

1. Закусывайте.
2. В принципе, завязывайте писать пьяным в этих наших интернетах.
3. Читать вашу малоадекватную писанину весьма тяжко, а уж отвечать на неё и вовсе мало кто захочет.

Ответить
Развернуть ветку
Семен Смирнов

Парсят, значит ты популярен. И парсится все равно открытая информация

Есть ли мнение другой стороны, у кого бизнес реально страдает из за парсинга?

Это, например, HeadHunter, «Яндекс.Еда», Beru.ru, «Ламода»

Найди лишнее)

Ответить
Развернуть ветку
Leonardo DaVinci

ну так себе сервис. я лично уже год пользуюсь datacol-ом

Ответить
Развернуть ветку
Vladimir Rozhkov

Как решали вопрос с incapsula? Ставили ферму из headless браузеров?

Ответить
Развернуть ветку
Максим Кульгин
Автор

Да все верно 

Ответить
Развернуть ветку
Serge Kharkov

1. Блокировать IP из сетей хостеров сдающих сервера в аренду - совсем не так сложно. Да, в некоторых странах можно купить прокси в сетях не хостеров, а у "человеческих провайдеров", в РФ например можно, а вот на Украине - нельзя. Но даже в тех странах, где можно - это уже очень сильно удорожит парсинг и сделает его возможно нерентабельным.

2. "Невидимую капчу" можно (и нужно) делать не по поведению, а по программному окружению. Тот же гугл именно так и делает. Да, на сбор данных об окружении нужно время, но можно страницу быстро отдавать с версткой и дизайном без ключевых данных, а потом ключевые данные подгружать после проверки окружения.

Ответить
Развернуть ветку
Владимир Новиков

"Хехе, вы нас блокируете , а мы все равно вас спарсим. Ооо, смотри, что это у меня в руках? Это данные!"

Вреда от парсера нет. Не понимаю, зачем их отсекать?

Ответить
Развернуть ветку
Leonardo DaVinci

ну как-то же надо было инфоповод придумать для лишней рекламы

Ответить
Развернуть ветку
Августин Макдональд

Ну как это нет?
Работаю сейчас в компании по торговле автозапчастями. для грузовиков,  так у нас на это целый человек выделен, пишет парсеры, и на основе данных о наличии и ценах у конкурентов выстраивается ценовая политика 

Ответить
Развернуть ветку
1 комментарий
Станислав

Отсечь хотят не конкретно парсеры, а любых ботов, т.к. они создают ложную статистику посещений, что может быть плохо при купле/продаже рекламы

Ответить
Развернуть ветку
4 комментария
Александр Ерёмин

А где посмотреть ваши тарифы? Просто на сайте везде 0Р. вижу. Как монетизируетесь?

Ответить
Развернуть ветку
Leonardo DaVinci

если у вас проблемы даже с нахождением тарифов, то может вам пока рановато в парсинг?

Ответить
Развернуть ветку
1 комментарий
Максим Кульгин
Автор

Бесплатно примеры Парсинга- чтобы люди поняли как это выглядит , а потом мы даём уже полный доступ на портал наш и там все данные

Ответить
Развернуть ветку
4 комментария
Александр Балалеев

Разумеется в статье почти полный бред. Защита от парсеров, тем более таких примитивных есть, просто вы не ходите на такие сайты,  а маркеты и не против, чтобы их обкачивали.
Еще не очень понятно почему изменение структуры сайта не поможет? Достаточно раз в день циклично менять названия условных классов и все, до свидания.

Ответить
Развернуть ветку
KilledDebtor
Достаточно раз в день циклично менять названия условных классов и все, до свидания.

Это же детечится легко, вам переверстывать циклично сайт раз в день будет сложнее, чем программисту парсера поправить регулярки.

Ответить
Развернуть ветку
17 комментариев
Alex A

Про xpath Вы, конечно, не слышали?

Ответить
Развернуть ветку
11 комментариев
Ivan Vishnyakov

Один сайт защищался таким образом:
Цены товара отображались как набор картинок. У каждой цифры была своя картинка. В коде страницы у каждой картинки был свой цыфробуквенный код, каждый раз новый.

Для парсинга требовался программист, который разберёт алгоритм шифровки картинок, это да. Зато какая нагрузка на серверах генерировать эти картинки вместо цифр?

Ответить
Развернуть ветку
Максим Кульгин
Автор

Распознованием картинок - мы так делали 

Ответить
Развернуть ветку
2 комментария
Александр Ерёмин

Еще интересен момент с SEO. Роботу тоже зашифрованные картинки отдавались?

Ответить
Развернуть ветку
5 комментариев
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Максим Кульгин
Автор

Те кто мониторит цены и ассортимент конкурентов 

Ответить
Развернуть ветку
8 комментариев
Станислав

магазины хотят знать цены конкурентов и готовы за это платить

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Del Ins Up

Какое то другое средство отсечение, не описанное в статье ?

Ответить
Развернуть ветку
Vl Al

"И еще не встречали защиты, которую мы не смогли бы обойти." - Такая защита существуют. Но на другом уровне. Для её обхода пока еще нужно привлекать людей средней квалификации. Это недорого. Примерно 1500 руб. за день работы и обработку двух-трех кейсов.

Ответить
Развернуть ветку
Alexandr Sosnovsky

Эту статью уже читал года пол назад, может меньше. Зачем снова?)

Ответить
Развернуть ветку
Aleksei Novikov

Нотивка, продокт-плойсмент )

Ответить
Развернуть ветку
Andrew

хм, а кто-то может фейсбук парсить? ищу таких 

Ответить
Развернуть ветку
Shoo

Много кто может, но все довольно недолго. 

Ответить
Развернуть ветку
5 комментариев
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Mik Foxi

Вот хорошая защита от парсинга: https://antibot.cloud/

Ответить
Развернуть ветку
Александр Богатюк

Можете ли Вы парсить данные защищенные incapsula? Например, whoscored.com?

Ответить
Развернуть ветку
Denis Radko

Да, с авиабилетами тоже сталкивался, теперь всегда смотрю их для себя через приватный режим браузера.

Ответить
Развернуть ветку
Andy Rodionov

А какую нагрузку парсинг создает на сайт, который парсят? У меня три дня назад выросла нагрузка на проц на сервере ИМ в 3,5 раза. Есть версия что нас кто-то парсит. На ддос не похоже.

Ответить
Развернуть ветку
138 комментариев
Раскрывать всегда