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

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

Раз у нас есть текст и структура, то в автоматическом сборе информации нет особой проблемы. В примере с «Войной и миром» мы искали название + прилагательное. На странице конкурента мы можем поискать связку «Цена + число» в тэгах, обозначающих таблицу или блок текста – и мы получим цену на товары в крупных интернет-магазинах. Искать нужно с помощью программных кодов, написанных практически на любом адекватном языке программирования – эти программы называются парсерами.
Сделаем промежуточный вывод:
Теперь перейдем к «бизнес-вопросам» парсинга.Законно ли использовать парсинг
Парсинг может показаться воровством, ведь вы заходите на ресурсы конкурентов и забираете их данные. Если давать краткий ответ на вопрос: парсинг воровством в большинстве случаев не является, поскольку вы приходите на сайты с поисковых запросов и для анализа конкурентов. Если отвечать более развернуто, то нужно ввести 2 понятия:
Так вот, область легального применения парсинга – открытые источники информации, а методы сбора не должны нарушать интеллектуальную собственность. Проще говоря: с помощью самописных или специальных сервисов можно спокойно парсить поисковую выдачу и собирать любые данные, которые есть на страницах. Если же вы получили закрытый доступ ко внутренним базам сайта, парсить их незаконно. Что касается интеллектуальной собственности – способ сбора данных может разниться, парсеры помогают собирать в том числе и видео/аудио/изображения, если их правильно написать/настроить.
И если вы собираете авторские материалы парсером – вы нарушаете права интеллектуальной собственности в том случае, если в дальнейшем их как-то используете. Парсить данные можно для самых разных целей, самые частые причины у бизнеса:
Сбор цен конкурентов | Интернет-магазины – бесценный источник информации о ценах, если вы вооружились парсером. На начальном этапе парсинга можно указать дополнительные параметры, и кроме цен вы получите фото, описания, отзывы и так далее |
Отслеживание динамики цен | Парсер можно настроить на регулярный сбор цен, если данные после этого заносить в базу – можно получить динамику и график изменения цен |
SEO-аудит сайта | Самописная программа позволяет парсить сайт вообще по любым критериям. Вы можете, например, проверить пустые alt-теги у всех картинок на сайте или собрать парсер, который анализирует правильность структуры заголовков на всех информационных материалах сайта |
Автоматическое наполнение данных о товарах | Парсер – это не какая-то магическая программа, это – обычный алгоритм. А это значит, что умелый программист может прикрутить к нему дополнительную функциональность. Например, после того, как в ваш интернет-магазин добавился товар, парсер проходится по конкурентам, ищет такой же товар и наполняет карточку вашего товара данными из карточки товара конкурента. Это, в общем-то, нарушает интеллектуальную собственность, но тот же Алиэкспресс именно так и делает |
Сбор контактов для базы | Если вы где-то нашли данные о клиентах – вы можете привлечь к сбору данных парсер, чтобы получить базу для обзвона. Обычно сервисы предоставляют такую возможность, хотя соцсети парсить нельзя – запустить парсинг не получится из-за внутренней защиты соцсети (хотя самописный парсинг может обойти и ее) |
В самом парсинге все просто и сложно одновременно. Просто – потому что вам нужно просто взять строку кода с сайта и проанализировать ее на вхождения нужных вам слов, после чего повторить это со следующей строкой. Сложно – потому что этот самый анализ может включать самые разные фрагменты, при парсинге всего используют тысячи условий и регулярных выражений. Хотя структура «типичного» сайта и размечается известным/предсказуемым образом, на новом сайте может быть какой-нибудь самописный модуль, который не вписывается в стандартные критерии – и его тоже надо как-то обработать. Не забываем, что на разных сайтах могут по-разному оформлять нужную нам информацию: на одном сайте написать слово «Цена» в абзаце, на втором слово «Стоимость» и числа находятся в таблице, на третьем цены вообще размещены картинками.
Еще одна сложность – с выборкой сайтов.Вы, конечно, можете вручную вбивать адрес сайта каждого конкурента, но сначала вам нужно все эти адреса собрать. Проблему решают поисковые системы – вы можете указать ключевые слова, и программы будут анализировать топ-10 выдачи по этом словам. Но если вы не будете знать, на каких конкретно сайтах ищется информация, продумать алгоритмы поиска будет еще сложнее.
В основе алгоритмов поиска лежат регулярные выражения. Регулярки – это шаблоны, по которым ищется информация. Например, мы ищем:
При таком регулярном выражении предложение «Цена при заказе прямо сейчас составляет 3 499 рублей.» пройдет, а «Цена на сайте и в магазине может отличаться» – не пройдет. Но регулярные выражения – это головная боль разработчиков, потому что их очень сложно составлять. Что делать, если в тексте встречается лишняя точка? Какими еще сочетаниями символов описывается цена? Какие у слова «Цена» синонимы? А если слова «Цена» или его синонимов вообще нет? В общем, не зря за ручное создания парсеров платят неплохие деньги на фрилансе.
Практически любую. Единственное существенное ограничение – информация должна быть в текстовом виде. Есть специальные алгоритмы искусственного интеллекта для распознавания информации на картинках и в видео, но это – сложно и дорого.
Основное ограничение – в сложности самого процесса. Если вы пользуетесь готовыми программами для парсинга – они не дадут вам идеальный и максимально подробный результат, потому что такие парсеры написаны для выполнения широкого круга задач, как следствие – они не учитывают тонкости конкретной задачи.
Если вы заказываете на фрилансе конкретный парсер для своего бизнеса – придется платить деньги, и чем глубже будет залегать нужная вам информация, тем больше денег и времени вам придется потратить на ее выуживание.Основные способы применения для бизнеса мы уже перечисляли выше – сбор информации о себе или о конкурентах с последующей обработкой этой информации. Кроме того, парсеры часто используются в системной инженерии, в частности – в DevOps, в этой сфере парсеры используют для анализа логов.
Мы будем показывать процесс парсинга на примере программы SEO Spider от Screaming Frog. Скачать ее можно тут.
Что делать:





Из примера видна основная сложность парсинга – к каждому сайту нужно находить свой подход и писать свои регулярные выражения.Кроме того, выбранный нами инструмент для парсинга дает только мета-информацию и информацию из заголовков, цен там может не оказаться – тогда вам понадобится другой парсер, возможно – самописный.
Самостоятельно – очень сложно. Характеристики обычно «не отсвечивают» в метаданных, и обычные парсеры эту информацию не найдут. Выход – самописный парсер, написанный специально под определенный сайт. Для этого нужно знать какой-либо популярный язык программирования (обычно для этих целей выбирают Python), основы веб-программирования на выбранном языке, основы DOM и регулярные выражения.
Очень сложно. Два основных варианта – либо засовывать данные в js-скрипты, и тогда они не будут отображаться в коде, либо устанавливать ограничение на количество запросов с одного IP. В первом случае сильно просядет скорость загрузки страницы, второй способ требует времени/денег на реализацию. Второй способ можно купить в виде готового решения, одна из компаний-вендоров – Cloud Flare.
Практически никак, особенно если сайт покупает услуги стороннего сервиса. При огромном желании в даркнете можно попытаться купить бот-сеть с разными айпишниками, но это будет стоить огромных денег, для такой задачи – вообще нецелесообразно. Проще оставить парсер работать на пару суток с ограничением на количество запросов в минуту.
Тезисно: