Кто владеет данными, тот управляет миром. Ничего не поменялось. Данные на любых современных сайтах – это и есть то, что представляет их основную ценность. Но как это может быть связано с работой конкретно вашего сайта или даже просто бизнеса (пусть и без сайта)?
С помощью информации, размещённой на сайтах прямых и/или потенциальных конкурентов, можно составить наиболее полную картину рынка в вашей нише: что именно продают и предлагают конкуренты, как это делают, какой у них уровень цен, зависят ли они от регионов, вообще в каких регионах ведутся продажи, где размещены офисы и т.д., и т.п. По аналогии данные могут помогать решать любые другие задачи. Что и как – ниже.
Парсинг данных – это процесс автоматического преобразования разрозненных и неструктурированных данных из одного или сразу из нескольких источников в единый вид, удобный для дальнейшей работы в ваших интересах или в интересах вашего заказчика/клиента.
За автоматизацию сбора данных отвечают так называемые парсеры. Что это такое?
Парсер – это программа, которая умеет считывать данные, размещённые на сайтах или в любом другом виде, в разных источниках, в том числе в виде файлов на локальном или сетевом диске/хранилище, очищать их от ненужной информации, вычленяя нужную, и сохраняя в более удобном виде, пригодном для дальнейшей работы и анализа.
Форматов данных может быть бесчисленное количество, но программа-парсер должна уметь работать с теми форматами, в которых представлена искомая информация.
Понятно, что при работе с поисковой выдачей и вообще при анализе сайтов (своих или сайтов конкурентов), всегда используется 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-документов могут применяться и другие методы парсинга. Например:
Если механизм парсинга примерно понятен, то осталось разобраться с целями.
Скрапинг используется не только для сбора цен конкурентов. Задач может быть намного больше. Например, все поисковые системы тоже занимаются своего рода парсингом страниц. Непосредственно за этот процесс у них отвечают специальные пауки (краулеры, web-роботы или сканеры, кто только и как их не называет).
Итак, вот только несколько идей, зачем парсить сайты:
Но да, наиболее частая схема – парсинг товаров и каталогов продукции конкурентов. Цели банальны: сравнить ассортимент, уровни цен, зоны присутствия, параметры продаж, среагировать на новинки, выявить интересные акции, и т.п.
Наиболее интересный вид парсеров товаров – сникер-боты. О них мы писали отдельно: Что такое сникер-бот и как с ним работать.
Итак, для парсинга данных применяются программы парсеры.
Такие программы могут работать в виде stand-alone-софта (то есть устанавливаться на ваш ПК или на сервер), а также в виде web-сервисов (то есть с готовой инфраструктурой и API или просто с web-интерфейсом).
Подключение к целевому сайту (или к сайтам) может выполняться напрямую, от имени вашего ПК/сервера, или опосредованное, обычно через сеть прокси-серверов.
Парсеры могут быть универсальными или профильными. Например, сникер-боты, которых мы упомянули выше, умеют работать только с сайтами оригинальных производителей кроссовок. Такой софт, как Key Collector, выполняет широкий пул задач, но все они связаны с SEO: парсинг WordStat’а Яндекса, анализ данных из счётчиков, парсинг поисковой выдачи, работы с XML-лимитами поисковиков (по API) и т.п.
Универсальные скраперы можно настроить на поиск и сохранение любых данных, которые можно найти на страницах.
Что касается требований законодательства. В РФ особенно защищаются персональные данные и отдельные виды тайн (тайна переписки, коммерческая тайна, судебная, врачебная тайна, и т.п.).
Всё, что не попадает под их описание, защитить невозможно. Более того, почти всегда нужно доказать факт использования таких данных и связать их с фактом непосредственно сбора.
Иными словами, мало собрать базу личных контактов из общедоступных источников (ведь это могут быть персональные данные). Вы должны ещё и неправомерно использовать эту базу – пока сам факт нарушения не станет очевидным. И вот в этот момент складываются все части пазла: у вас есть мотив, есть пострадавшие и есть инструменты преступления (парсеры).
В норме информация, с которой работают парсеры – общедоступная. Поэтому, если вы не нарушаете требований правообладателей, не собираете и не храните персональные данные, не пытаетесь украсть у конкурентов информацию, являющуюся коммерческой тайной, то парсинг никто вам запретить не может.
Правда, тут важно помнить следующие моменты:
Так как все вышеуказанные факты доказать очень сложно, а судебные разбирательства могут длиться годами, владельцы сайтов и web-сервисов чаще всего идут обратным путём – они самостоятельно защищают свои ресурсы.
Обычно для этого используются специальные системы мониторинга и блокирования подключений, которые умеют анализировать поведение пользователей, количество одновременных сессий, проверять наличие поддержки JS (которое по идее есть в любом современном браузере) и т.п.
Существуют и более сложные антифрод-системы (от английского fraud – «обман»). Они умеют анализировать сотни различных признаков буквально на лету.
В случае, если обнаруживаются признаки подключения несанкционированных ботов (парсеров), то программа помещает их IP-адреса в чёрный список. Соответственно, доступ к сайту для этих IP-адресов блокируется. Блокировка по IP – это наиболее простой и действенный метод. Ведь рано или поздно у злоумышленника должны закончиться IP-адреса…
Но в реальности на каждую систему защиты есть своя система обхода.
Такой системой можно назвать прокси-серверы.
Как будет выглядеть защита парсера:
Интересный момент – чтобы ещё больше снизить эффект санкций (попадания в чёрный список), прокси логично ротировать в течение короткого промежутка времени. Например, раз в несколько минут (или до часа, тут всё будет зависеть от механизмов защиты на анализируемом сайте).
Обратите внимание, у подхода защиты с блокировкой отдельных IP-адресов есть и другие слабые места. Например, нельзя просто так взять и заблокировать любой IP. В некоторых случаях может получиться себе дороже.
Простой пример – адреса мобильных операторов связи. Так как IPv4 в пулах операторов осталось совсем немного, они вынуждены «прятать» за одним адресом целую подсеть из абонентов. Если попытаться заблокировать один такой IP, то вместо одного подключения можно потерять сотни реальных клиентов, которые ни в чём не виноваты.
Именно поэтому адреса мобильных операторов блокируют либо очень избирательно, либо на короткое время, чтобы не получить лишних проблем.
Вот почему мобильные прокси получаются самыми надёжными по сравнению со всеми остальными видами прокси.
Более подробно про плюсы и минусы можно почитать в нашем отдельном материале – Как работают мобильные прокси: особенности и преимущества.
Не менее интересными для массового парсинга будут и резидентные прокси. Как работают резидентные прокси: особенности и преимущества.
Парсинг – это и не плохо, и не хорошо. Любой парсер – это просто инструмент, который в свою очередь можно использовать для хороших или не очень задач. Цель любого парсинга – попытка автоматизировать сбор и систематизацию определённой информации. При web-парсинге анализируются сайты, обычно свои или сайты конкурентов.
Чтобы обойти ограничения систем защиты, в паре с парсером лучше всего применять прокси-серверы. Наиболее надёжными будут мобильные прокси. Резидентные прокси близки по функционалу и надёжности, но всё-таки немного уступают основным своим конкурентам.
Лучшие мобильные и резидентные прокси можно купить у Froxy.