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