logo
Ещё

Что такое парсинг

Маркетологи нередко думают, что парсинг – это когда мы открываем приложение, задаем ему определенные параметры, и каким-то магическим образом получаем нужные данные с сайтов конкурентов. На самом же деле парсинг – это лингвистический/лексический анализ текста, а парсинг сайтов – это лишь частный случай. Мы не будем глубоко погружаться в основы семантического анализа – это скучно – но расскажем вам, как именно парсятся сайты конкурентов, что происходит внутри сервисов парсинга по определенному запросу пользователя и как все это связано с кодом страницы. Наконец, мы приведем несколько популярных сервисов для парсинга и в удобных форматах покажем, как осуществлять процесс парсинга веб-страниц на примере Screaming Frog.


Парсинг – что это такое

Итак, парсинг – это процесс лингвистического анализа какого-либо текста. Анализировать можно все, что является осмысленным текстом: книги, газеты, журналы, переведенную в текст речь, сайты и так далее. Сам по себе лингвистический анализ состоит из поиска взаимосвязей между словами: например, мы берем все рецензии на книги «Война и мир», в рецензиях ищем предложения, в которых упоминается название, выдираем из этих приложений все описательные прилагательные, подсчитываем их количество. В итоге мы получаем табличку, в которой указано, что «Войну и мир» рецензенты 532 раза считали «достоверной», 375 раз «захватывающей» и 241 раз «фундаментальной». Пример взят из головы, но основную идею по нему понять можно.

Но если вы не являетесь лингвистом с ученой степенью, поиск прилагательных к «Войне и миру» вряд ли будет вам интересен. А вот поиск цен на сайтах конкурентов и составление базы контактов для холодного обзвона – куда интереснее для всех, кто занимается бизнесом/маркетингом. И парсинг может здесь помочь, но для объяснения этого процесса нам нужно провести небольшой ликбез по сайтам.

На самом деле любой сайт является организованной таблицей, внутри которой размещен текст.

Вы можете убедиться в этом самостоятельно – нажмите правой кнопкой мыши в любом пустом месте этой страницы и выберите «Показать исходный код». То, что вы увидите, и будет являться «настоящей» страницей сайта. Если вы вчитаетесь, то со временем поймете, что в этом тексте есть определенная структура – открывающие и закрывающие конструкции, которые что-то обозначают. Это – разметка страницы, правила которой описаны языком HTML. В HTML есть специальные метки для любого контента – блока, абзаца, таблицы, картинки и так далее. Эти метки (тэги) описывают браузеру структуру страницы, которую нужно отобразить.


Раз у нас есть текст и структура, то в автоматическом сборе информации нет особой проблемы. В примере с «Войной и миром» мы искали название + прилагательное. На странице конкурента мы можем поискать связку «Цена + число» в тэгах, обозначающих таблицу или блок текста – и мы получим цену на товары в крупных интернет-магазинах. Искать нужно с помощью программных кодов, написанных практически на любом адекватном языке программирования – эти программы называются парсерами.

Сделаем промежуточный вывод:

  • Парсинг – это лингвистический анализ любого текста.
  • Веб-страницы по сути тоже являются текстом.
  • Если у нас есть доступ к веб-странице – мы можем написать алгоритм, который будет искать конкретные связки слов и заносить их в таблицу.
  • Этот алгоритм называется парсером и может быть написан практически ан любом языке программирования.
Теперь перейдем к «бизнес-вопросам» парсинга.

Законно ли использовать парсинг

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

  1. Источники информации. Источники бывают открытыми и закрытыми. Цены конкурентов – это открытая информация, если владельцы сайтов сами разместили цены у себя и позволили всем желающим на эти цены смотреть. Если же сайты запрещают напрямую смотреть цены – например, данные доступны только после регистрации и валидации личности – то эта информация уже не относится к открытой.
  2. Интеллектуальная собственность. Интеллектуальная собственность – это нечто, созданное с помощью интеллектуального труда и имеющего самостоятельную ценность. Применительно к сайтам – это чаще всего авторское видео/аудио/изображения.

Так вот, область легального применения парсинга – открытые источники информации, а методы сбора не должны нарушать интеллектуальную собственность. Проще говоря: с помощью самописных или специальных сервисов можно спокойно парсить поисковую выдачу и собирать любые данные, которые есть на страницах. Если же вы получили закрытый доступ ко внутренним базам сайта, парсить их незаконно. Что касается интеллектуальной собственности – способ сбора данных может разниться, парсеры помогают собирать в том числе и видео/аудио/изображения, если их правильно написать/настроить.

И если вы собираете авторские материалы парсером – вы нарушаете права интеллектуальной собственности в том случае, если в дальнейшем их как-то используете. 

Для чего необходим

Парсить данные можно для самых разных целей, самые частые причины у бизнеса:

Сбор цен конкурентов

Интернет-магазины – бесценный источник информации о ценах, если вы вооружились парсером. На начальном этапе парсинга можно указать дополнительные параметры, и кроме цен вы получите фото, описания, отзывы и так далее

Отслеживание динамики цен

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

SEO-аудит сайта

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

Автоматическое наполнение данных о товарах

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

Сбор контактов для базы

Если вы где-то нашли данные о клиентах – вы можете привлечь к сбору данных парсер, чтобы получить базу для обзвона. Обычно сервисы предоставляют такую возможность, хотя соцсети парсить нельзя – запустить парсинг не получится из-за внутренней защиты соцсети (хотя самописный парсинг может обойти и ее)

Алгоритм работы парсинга

В самом парсинге все просто и сложно одновременно. Просто – потому что вам нужно просто взять строку кода с сайта и проанализировать ее на вхождения нужных вам слов, после чего повторить это со следующей строкой. Сложно – потому что этот самый анализ может включать самые разные фрагменты, при парсинге всего используют тысячи условий и регулярных выражений. Хотя структура «типичного» сайта и размечается известным/предсказуемым образом, на новом сайте может быть какой-нибудь самописный модуль, который не вписывается в стандартные критерии – и его тоже надо как-то обработать. Не забываем, что на разных сайтах могут по-разному оформлять нужную нам информацию: на одном сайте написать слово «Цена» в абзаце, на втором слово «Стоимость» и числа находятся в таблице, на третьем цены вообще размещены картинками.

Еще одна сложность – с выборкой сайтов.

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

В основе алгоритмов поиска лежат регулярные выражения. Регулярки – это шаблоны, по которым ищется информация. Например, мы ищем:

  • Набор символов, находящийся между двумя точками.
  • В наборе символов есть слово «цена» без учета регистра.
  • После слова «цена» в этом наборе символов где-то встречается произвольное количество цифр.
  • После последней цифры в произвольном наборе сразу же или через пробел идут буквы «руб» или знак рубля.

При таком регулярном выражении предложение «Цена при заказе прямо сейчас составляет 3 499 рублей.» пройдет, а «Цена на сайте и в магазине может отличаться» – не пройдет. Но регулярные выражения – это головная боль разработчиков, потому что их очень сложно составлять. Что делать, если в тексте встречается лишняя точка? Какими еще сочетаниями символов описывается цена? Какие у слова «Цена» синонимы? А если слова «Цена» или его синонимов вообще нет? В общем, не зря за ручное создания парсеров платят неплохие деньги на фрилансе.

Какую информацию можно парсить

Практически любую. Единственное существенное ограничение – информация должна быть в текстовом виде. Есть специальные алгоритмы искусственного интеллекта для распознавания информации на картинках и в видео, но это – сложно и дорого. 

Достоинства парсинга

  • Можно быстро получить большое количество информации.
  • Парсер можно тонко настраивать.
  • Бесплатных сервисов зачастую хватает для удовлетворения нужд бизнеса.

Ограничения

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

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

Способы применения

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

Как парсить – пошаговая инструкция

Мы будем показывать процесс парсинга на примере программы SEO Spider от Screaming Frog. Скачать ее можно тут

Как спарсить цену

Что делать:

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

  3. Выбираем в фильтрах HTML, жмем на Export, выбираем Excel-файл.

  4. К сожалению, Эксель не поддерживает регулярные выражения, поэтому нужно мигрировать в Гугл Таблицы. Выбираем в Экселе столбик, в котором есть название + цена, копируем его, вставляем в Гугл Таблицу.

  5. Теперь нам нужно написать регулярное выражение, которое выкинет все лишнее. О том, как составлять регулярки, можно почитать вот тут. В нашем случае видно, что вся полезная информация располагается между «Люстра» и знаком рубля, поэтому сначала пишем REGEXTRACT, который вытащит эту информацию. Если совпадения нет – значит, строка нам не интересна.

  6. Теперь с помощью REGEXREPLACE убираем все лишнее – просто заменяем «Люстра потолочная» и «купить по цене» на пустоту.

  7. В общем-то, все – мы получили наименование и цену. Если попадаются какие-либо другие фрагменты, которые нужно удалить – просто перечисляем их со знаком разделения |. Если вам нужно разделить информацию на две ячейки – сделать это будет довольно трудно, но все же возможно, с помощью REGEXTRACT вам нужно сначала «вырвать» цену, после чего в отдельной ячейке вывести все, кроме цены.
Из примера видна основная сложность парсинга – к каждому сайту нужно находить свой подход и писать свои регулярные выражения.

Кроме того, выбранный нами инструмент для парсинга дает только мета-информацию и информацию из заголовков, цен там может не оказаться – тогда вам понадобится другой парсер, возможно – самописный.

Как спарсить характеристики товара

Самостоятельно – очень сложно. Характеристики обычно «не отсвечивают» в метаданных, и обычные парсеры эту информацию не найдут. Выход – самописный парсер, написанный специально под определенный сайт. Для этого нужно знать какой-либо популярный язык программирования (обычно для этих целей выбирают Python), основы веб-программирования на выбранном языке, основы DOM и регулярные выражения.

FAQ

Как защититься от парсинга?

Очень сложно. Два основных варианта – либо засовывать данные в js-скрипты, и тогда они не будут отображаться в коде, либо устанавливать ограничение на количество запросов с одного IP. В первом случае сильно просядет скорость загрузки страницы, второй способ требует времени/денег на реализацию. Второй способ можно купить в виде готового решения, одна из компаний-вендоров – Cloud Flare.

Как обойти ограничения по сайтов на количество запросов?

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

Подведем итоги

Тезисно:

  • Парсинг – это лингвистический анализ текста на наличие соответствий.
  • Чаще всего интересуются парсингом сайтов с целью получения информации о ценах/наименованиях/характеристиках товара конкурентов.
  • Парсинг – это легально, если вы не присваиваете себе чужую интеллектуальную собственность и пользуетесь открытыми источниками информации.
  • Парсинг осуществляется специальными программами. Иногда нужно использовать несколько программ в связке – одна, например, выдирает с сайта информацию, а другая ищет среди всей информации нужную.
  • Готовые приложения для парсинга обычно позволяют проводить только поверхностный парсинг (по мета-информации и заголовкам), если вам нужно выдрать с сайта какую-то специфическую информацию, вроде технических характеристик товара – лучше найти разработчика, который напишет вам парсер, «заточенный» под конкретный сайт и конкретную задачу.
Часто ищут