Кто владеет данными, тот управляет миром. Ничего не поменялось. Данные на любых современных сайтах – это и есть то, что представляет их основную ценность. Но как это может быть связано с работой конкретно вашего сайта или даже просто бизнеса (пусть и без сайта)?
С помощью информации, размещённой на сайтах прямых и/или потенциальных конкурентов, можно составить наиболее полную картину рынка в вашей нише: что именно продают и предлагают конкуренты, как это делают, какой у них уровень цен, зависят ли они от регионов, вообще в каких регионах ведутся продажи, где размещены офисы и т.д., и т.п. По аналогии данные могут помогать решать любые другие задачи. Что и как – ниже.
Что такое парсинг
Парсинг данных – это процесс автоматического преобразования разрозненных и неструктурированных данных из одного или сразу из нескольких источников в единый вид, удобный для дальнейшей работы в ваших интересах или в интересах вашего заказчика/клиента.
За автоматизацию сбора данных отвечают так называемые парсеры. Что это такое?
Парсер – это программа, которая умеет считывать данные, размещённые на сайтах или в любом другом виде, в разных источниках, в том числе в виде файлов на локальном или сетевом диске/хранилище, очищать их от ненужной информации, вычленяя нужную, и сохраняя в более удобном виде, пригодном для дальнейшей работы и анализа.
Форматов данных может быть бесчисленное количество, но программа-парсер должна уметь работать с теми форматами, в которых представлена искомая информация.
Понятно, что при работе с поисковой выдачей и вообще при анализе сайтов (своих или сайтов конкурентов), всегда используется HTML-разметка. Соответственно, парсер, анализирующий HTML-страницы, должен уметь находить нужные ему теги и сохранять информацию, размещённую внутри них.
Web-парсинг ещё называют веб-скрейпинг. Он же web-скрепинг или скрапинг, в зависимости от того, кто и как читает на английском. Исходное слово – scraping (буквально переводится как «соскоб»).
Казалось бы, данные размещенные публично, предполагают сам факт того, что ими будет пользоваться неограниченный круг лиц. Никаких прав и лицензий при парсинге по идее никто нарушать не должен.
Однако это не совсем так. В законодательстве РФ есть такое понятие, как незаконный сбор персональных данных частных лиц, а также незаконное получение сведений, составляющих коммерческую тайну (это если говорить о юридических лицах). Обо всех этих нюансах в специальном разделе далее по тексту.
Как работает парсер
Если остановиться только на web-парсерах, то всё происходит очень просто. Программа подключается к целевому серверу, как любой современный браузер. Она часто даже представляется одним из них, например, Google Chrome или Mozilla Firefox, и даже может иметь в составе компоненты таких web-браузеров, чтобы «видеть» контент страниц, как это делают любые другие пользователи при заходе на страницы.
Однако, технически любая страница любого сайта – это набор HTML-тегов, внутри которых уже размещается нужный парсеру контент: изображения, видео, текст и т.п.
Парсер сканирует структуру HTML-документа и вычленяет в нём нужные блоки. Данные из них он сохраняет в свою базу и далее переходит к следующей странице.
Если у парсера нет списка целевых страниц, то он может получить их в автоматическом режиме – при обходе всех ссылок сайта. Более того, парсер можно научить обходить не только внутренние ссылки, привязанные к одному конкретному домену, но и все внешние. Такой подход будет более логичен для анализа сложных по структуре web-проектов, у которых данные могут быть разнесены на несколько связанных между собой сайтов.
Простой пример, на странице с товарами, информация с названием позиции заключена в тег:
<div class="productCardTitle">Здесь непосредственно название</div>
А цена на него спрятана внутри тега:
<div class="data-offer-id">Цена цифрами</div>
Соответственно, парсер может разложить весь HTML-код на отдельные теги и сохранить к себе в базу данных только непосредственно название и цену.
По аналогии можно спарсить и другие данные: наименование товарной группы, связанные предложения, характеристики товара, его изображения, описания, отзывы и т.д.
Конечный набор будет зависеть только от задач и целей парсера.
Вот, что значит парсить данные с сайтов.
Но справедливости ради стоит отметить, что помимо прямого (синтаксического) анализа HTML-документов могут применяться и другие методы парсинга. Например:
- На основе текстовых анализаторов (с поиском по маскам и шаблонам).
- На основе анализа DOM-структуры (применяются для работы с динамическим содержимым).
- На основе семантической разметки (обычно работа происходит со специальными метаданными).
- На основе сложных анализаторов web-страниц. Сюда могут входить системы искусственного зрения (для распознавания изображений, видео и их содержимого), ИИ-боты и т.п.
Для чего нужен парсинг
Если механизм парсинга примерно понятен, то осталось разобраться с целями.
Скрапинг используется не только для сбора цен конкурентов. Задач может быть намного больше. Например, все поисковые системы тоже занимаются своего рода парсингом страниц. Непосредственно за этот процесс у них отвечают специальные пауки (краулеры, web-роботы или сканеры, кто только и как их не называет).
Итак, вот только несколько идей, зачем парсить сайты:
- Сбор и персонализация контактных данных. Примерно так собираются базы email и номеров телефонов для рассылки (часто это делается для спам-рассылок, но могут быть и вполне легальные рассылки с запросом разрешения).
- Анализ собственных сайтов. Например, для поиска битых ссылок, выявления ошибок в вёрстке, для обнаружения незаполненных метатегов, неправильных редиректов, для проверки кодов ответа сервера и т.п.
- Анализ SEO-стратегий конкурентов. Сюда могут входить не только сканирование и выявление ключевых запросов, но и анализ структурных элементов, получение общих оценок поисковых систем, сбор ссылочной базы (внешних и внутренних), проверка семантической структуры и т.п.
- Поиск контактов и другой информации для составления ядра своей аудитории. Например, сбор данных в тематических форумах, выявление интересов и животрепещущих тем, составление портрета потенциального клиента и т.п.
- Составление семантического ядра для своего сайта. Сбор ключевых фраз и запросов из специальных сервисов Яндекса или Google, проверка позиций по этим запросам в выдаче (в том числе с привязкой к нужным регионам), анализ частоты ввода в прямом или общем виде (с точным и неточным вхождением), поиск похожих запросов и т.п. Плюс, возможен сбор подсказок из поисковой выдачи.
- Быстрое наполнение сайтов. Не самый лучший подход. Но что есть, то есть. С помощью парсинга сайтов многие пытаются закрыть «пустоту» страниц в своих проектах. Можно либо потратить годы на создание оригинального контента, а можно за несколько минут «слизать» всё у прямого конкурента. И только потом всё плавно переделать под себя.
- Проверка качества ведения рекламных кампаний. Например, когда вы отдаёте работу подрядчикам и ожидаете, что вашу рекламу будут показывать определённой целевой аудитории на определённых ресурсах. Но прямое сканирование может указать на обратное. Парсеры помогут выявить и зафиксировать ошибки, показать реальную картину работы исполнителей и т.д.
- Анализ отзывов и ускорение реакции на негатив. Будет актуально для крупных и именитых компаний, которые применяют SERM (управление репутацией). Любое упоминание на посещаемых ресурсах может отслеживаться. В комментариях тут же появится представитель бренда и решит проблему. Такие парсеры умеют отслеживать не только прямые вхождения, но огромный пул синонимов, например, по аналогии с «тот самый зелёный банк».
Но да, наиболее частая схема – парсинг товаров и каталогов продукции конкурентов. Цели банальны: сравнить ассортимент, уровни цен, зоны присутствия, параметры продаж, среагировать на новинки, выявить интересные акции, и т.п.
Наиболее интересный вид парсеров товаров – сникер-боты. О них мы писали отдельно: Что такое сникер-бот и как с ним работать.
Как можно парсить данные и законно ли это
Итак, для парсинга данных применяются программы парсеры.
Виды парсеров
Такие программы могут работать в виде stand-alone-софта (то есть устанавливаться на ваш ПК или на сервер), а также в виде web-сервисов (то есть с готовой инфраструктурой и API или просто с web-интерфейсом).
Подключение к целевому сайту (или к сайтам) может выполняться напрямую, от имени вашего ПК/сервера, или опосредованное, обычно через сеть прокси-серверов.
Парсеры могут быть универсальными или профильными. Например, сникер-боты, которых мы упомянули выше, умеют работать только с сайтами оригинальных производителей кроссовок. Такой софт, как Key Collector, выполняет широкий пул задач, но все они связаны с SEO: парсинг WordStat’а Яндекса, анализ данных из счётчиков, парсинг поисковой выдачи, работы с XML-лимитами поисковиков (по API) и т.п.
Универсальные скраперы можно настроить на поиск и сохранение любых данных, которые можно найти на страницах.
Насколько правомерно заниматься парсингом
Что касается требований законодательства. В РФ особенно защищаются персональные данные и отдельные виды тайн (тайна переписки, коммерческая тайна, судебная, врачебная тайна, и т.п.).
Всё, что не попадает под их описание, защитить невозможно. Более того, почти всегда нужно доказать факт использования таких данных и связать их с фактом непосредственно сбора.
Иными словами, мало собрать базу личных контактов из общедоступных источников (ведь это могут быть персональные данные). Вы должны ещё и неправомерно использовать эту базу – пока сам факт нарушения не станет очевидным. И вот в этот момент складываются все части пазла: у вас есть мотив, есть пострадавшие и есть инструменты преступления (парсеры).
В норме информация, с которой работают парсеры – общедоступная. Поэтому, если вы не нарушаете требований правообладателей, не собираете и не храните персональные данные, не пытаетесь украсть у конкурентов информацию, являющуюся коммерческой тайной, то парсинг никто вам запретить не может.
Правда, тут важно помнить следующие моменты:
- Если парсинг смогут связать с DDoS-атакой или с попыткой внедрения вируса, то вам могут вменить вполне ощутимые штрафы и санкции (статьи 272 и 273 УК РФ).
- Если по полученным контактам вы попытаетесь рассылать спам, то тут тоже могут быть штрафы и санкции в соответствии с требованиями закона «О рекламе».
- Попытка разместить на своих сайтах чужой контент может привести к спорам относительно авторских прав (прямой или косвенный ущерб, плюс, уголовные статьи, например, ст. 146 УК РФ).
- Попытка публикации и распространения персональных данных (например, утечек или сливов) без согласия их владельцев – это всегда серьёзные штрафы (ст. 13.11 КоАП РФ).
Проблемы, с которыми можно столкнуться при парсинге
Так как все вышеуказанные факты доказать очень сложно, а судебные разбирательства могут длиться годами, владельцы сайтов и web-сервисов чаще всего идут обратным путём – они самостоятельно защищают свои ресурсы.
Обычно для этого используются специальные системы мониторинга и блокирования подключений, которые умеют анализировать поведение пользователей, количество одновременных сессий, проверять наличие поддержки JS (которое по идее есть в любом современном браузере) и т.п.
Существуют и более сложные антифрод-системы (от английского fraud – «обман»). Они умеют анализировать сотни различных признаков буквально на лету.
В случае, если обнаруживаются признаки подключения несанкционированных ботов (парсеров), то программа помещает их IP-адреса в чёрный список. Соответственно, доступ к сайту для этих IP-адресов блокируется. Блокировка по IP – это наиболее простой и действенный метод. Ведь рано или поздно у злоумышленника должны закончиться IP-адреса…
Но в реальности на каждую систему защиты есть своя система обхода.
Такой системой можно назвать прокси-серверы.
Как будет выглядеть защита парсера:
- Так как как анализируемый сайт может содержать тысячи страниц, то для их последовательного сканирования/обхода может уйти очень много времени. Логично запускать одновременно несколько параллельных потоков.
- Пусть парсер работает на ПК или на сервере, который имеет уникальный IP-адрес A.
- Вместо прямого подключения парсер использует большой список серверов-посредников (список прокси). У каждого прокси свой IP-адрес – Б, В, Г, Д и так далее.
- Чем больше список прокси, тем больше параллельных потоков можно запустить. Если пул прокси очень большой, то каждый отдельный запрос можно отправлять с нового IP-адреса.
- Чтобы антифрод-система сработала и вычислила факт автоматического парсинга, ей нужно проанализировать несколько запросов с одного и того же адреса. У каждой системы защиты свой лимит.
- Но если запросы редкие и приходят с разных IP-адресов, то антифрод-система их вряд ли обнаружит. Соответственно, и не сработает.
- Даже если отдельные IP-адреса прокси попадут в чёрный список, пусть Б и Д, их легко можно будет заменить на новые, следующие по списку.
- При этом исходный IP-адрес парсера (А) нигде не фигурирует, поэтому программа может продолжать работу без каких-либо проблем.
Интересный момент – чтобы ещё больше снизить эффект санкций (попадания в чёрный список), прокси логично ротировать в течение короткого промежутка времени. Например, раз в несколько минут (или до часа, тут всё будет зависеть от механизмов защиты на анализируемом сайте).
Обратите внимание, у подхода защиты с блокировкой отдельных IP-адресов есть и другие слабые места. Например, нельзя просто так взять и заблокировать любой IP. В некоторых случаях может получиться себе дороже.
Простой пример – адреса мобильных операторов связи. Так как IPv4 в пулах операторов осталось совсем немного, они вынуждены «прятать» за одним адресом целую подсеть из абонентов. Если попытаться заблокировать один такой IP, то вместо одного подключения можно потерять сотни реальных клиентов, которые ни в чём не виноваты.
Именно поэтому адреса мобильных операторов блокируют либо очень избирательно, либо на короткое время, чтобы не получить лишних проблем.
Вот почему мобильные прокси получаются самыми надёжными по сравнению со всеми остальными видами прокси.
Более подробно про плюсы и минусы можно почитать в нашем отдельном материале – Как работают мобильные прокси: особенности и преимущества.
Не менее интересными для массового парсинга будут и резидентные прокси. Как работают резидентные прокси: особенности и преимущества.
Заключение и рекомендации
Парсинг – это и не плохо, и не хорошо. Любой парсер – это просто инструмент, который в свою очередь можно использовать для хороших или не очень задач. Цель любого парсинга – попытка автоматизировать сбор и систематизацию определённой информации. При web-парсинге анализируются сайты, обычно свои или сайты конкурентов.
Чтобы обойти ограничения систем защиты, в паре с парсером лучше всего применять прокси-серверы. Наиболее надёжными будут мобильные прокси. Резидентные прокси близки по функционалу и надёжности, но всё-таки немного уступают основным своим конкурентам.
Лучшие мобильные и резидентные прокси можно купить у Froxy.
- Более 8 млн. IP с возможностью ротации.
- До 1000 одновременных подключений.
- Выбор локации с точностью до города и провайдера связи.
- Глобальное покрытие (почти все страны и регионы мира).
- Оплата по пакетам трафика.
- API и готовые интеграции, возможность выгрузки списков в удобном формате.