Спарсить данные с сайта в excel что это

Парсинг нетабличных данных с сайтов

Проблема с нетабличными данными

С загрузкой в Excel табличных данных из интернета проблем нет. Надстройка Power Query в Excel легко позволяет реализовать эту задачу буквально за секунды. Достаточно выбрать на вкладке Данные команду Из интернета (Data — From internet), вставить адрес нужной веб-страницы (например, ключевых показателей ЦБ) и нажать ОК:

Импорт данных с веб-страницы через Power Query

Power Query автоматически распознает все имеющиеся на веб-странице таблицы и выведет их список в окне Навигатора:

Выбираем таблицу на сайте для импорта

Дальше останется выбрать нужную таблицу методом тыка и загрузить её в Power Query для дальнейшей обработки (кнопка Преобразовать данные) или сразу на лист Excel (кнопка Загрузить).

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

К сожалению, сплошь и рядом встречаются сайты, где при попытке такой загрузки Power Query «не видит» таблиц с нужными данными, т.е. в окне Навигатора попросту нет этих Table 0,1,2… или же среди них нет таблицы с нужной нам информацией. Причин для этого может быть несколько, но чаще всего это происходит потому, что веб-дизайнер при создании таблицы использовал в HTML-коде страницы не стандартную конструкцию с тегом <TABLE>, а её аналог — вложенные друг в друга теги-контейнеры <DIV>. Это весьма распространённая техника при вёрстке веб-сайтов, но, к сожалению, Power Query пока не умеет распознавать такую разметку и загружать такие данные в Excel.

Тем не менее, есть способ обойти это ограничение ;)

В качестве тренировки, давайте попробуем загрузить цены и описания товаров с маркетплейса Wildberries — например, книг из раздела Детективы:

Детективы на Wildberries

Загружаем HTML-код вместо веб-страницы

Сначала используем всё тот же подход — выбираем команду Из интернета на вкладке Данные (Data — From internet) и вводим адрес нужной нам страницы:

https://www.wildberries.ru/catalog/knigi/hudozhestvennaya-literatura/detektivy

После нажатия на ОК появится окно Навигатора, где мы уже не увидим никаких полезных таблиц, кроме непонятной Document:

Навигатор без таблиц

Дальше начинается самое интересное. Жмём на кнопку Преобразовать данные (Transform Data), чтобы всё-таки загрузить содержимое таблицы Document в редактор запросов Power Query. В открывшемся окне удаляем шаг Навигация (Navigation) красным крестом:

Удаляем ненужный шаг Навигация

… и затем щёлкаем по значку шестерёнки справа от шага Источник (Source), чтобы открыть его параметры:

Меняем тип файла

В выпадающием списке Открыть файл как (Open file as) вместо выбранной там по-умолчанию HTML-страницы выбираем Текстовый файл (Text file). Это заставит Power Query интерпретировать загружаемые данные не как веб-страницу, а как простой текст, т.е. Power Query не будет пытаться распознавать HTML-теги и их атрибуты, ссылки, картинки, таблицы, а просто обработает исходный код страницы как текст.

После нажатия на ОК мы этот HTML-код как раз и увидим (он может быть весьма объемным — не пугайтесь):

Исходный код страницы в Power Query

Ищем за что зацепиться

Теперь нужно понять на какие теги, атрибуты или метки в коде мы можем ориентироваться, чтобы извлечь из этой кучи текста нужные нам данные о товарах. Само-собой, тут всё зависит от конкретного сайта и веб-программиста, который его писал и вам придётся уже импровизировать.

В случае с Wildberries, промотав этот код вниз до товаров, можно легко нащупать простую логику:

Изучаем исходный код

  • Строчки с ценами всегда содержат метку lower-price
  • Строчки с названием бренда — всегда с меткой brand-name c-text-sm
  • Название товара можно найти по метке goods-name c-text-sm

Иногда процесс поиска можно существенно упростить, если воспользоваться инструментами отладки кода, которые сейчас есть в любом современном браузере. Щёлкнув правой кнопкой мыши по любому элементу веб-страницы (например, цене или описанию товара) можно выбрать из контекстного меню команду Инспектировать (Inspect) и затем просматривать код в удобном окошке непосредственно рядом с содержимым сайта:

Инспектирование кода HTML на веб-странице

Фильтруем нужные данные

Теперь совершенно стандартным образом давайте отфильтруем в коде страницы нужные нам строки по обнаруженным меткам. Для этого выбираем в окне Power Query в фильтре [1] опцию Текстовые фильтры — Содержит (Text filters — Contains), переключаемся в режим Подробнее (Advanced) [2] и вводим наши критерии:

Фильтруем нужные строки

Добавление условий выполняется кнопкой со смешным названием Добавить предложение [3]. И не забудьте для всех условий выставить логическую связку Или (OR) вместо И (And) в выпадающих списках слева [4] — иначе фильтрация просто не сработает.

После нажатия на ОК на экране останутся только строки с нужной нам информацией:

Отобранные строки

Чистим мусор

Останется почистить всё это от мусора любым подходящим и удобным лично вам способом (их много). Например, так:

  1. Удалить заменой на пустоту начальный тег: <span class=»price»> через команду Главная — Замена значений (Home — Replace values).
  2. Разделить получившийся столбец по первому разделителю «>» слева командой Главная — Разделить столбец — По разделителю (Home — Split column — By delimiter) и затем ещё раз разделить получившийся столбец по первому вхождению разделителя «<» слева, чтобы отделить полезные данные от тегов:

    Отделяем данные от HTML-тегов

  3. Удалить лишние столбцы, а в оставшемся заменить стандартную HTML-конструкцию &quot; на нормальные кавычки.

В итоге получим наши данные в уже гораздо более презентабельном виде:

Зачищенные данные

Разбираем блоки по столбцам

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

Выполнить такое преобразование можно очень легко — с помощью, буквально, одной строчки кода на встроенном в Power Query языке М. Для этого щёлкаем по кнопке fx в строке формул (если у вас её не видно, то включите её на вкладке Просмотр (View)) и вводим следующую конструкцию:

= Table.FromRows(List.Split(#»Замененное значение1″[Column1.2.1],3))

Здесь функция List.Split разбивает столбец с именем Column1.2.1 из нашей таблицы с предыдущего шага #»Замененное значение1″ на кусочки по 3 ячейки, а потом функция Table.FromRows конвертирует получившиеся вложенные списки обратно в таблицу — уже из трёх столбцов:

Разобранная на 3 столбца таблица

Ну, а дальше уже дело техники — настроить числовые форматы столбцов, переименовать их и разместить в нужном порядке. И выгрузить получившуюся красоту обратно на лист Excel командой Главная — Закрыть и загрузить (Home — Close & Load…)

Загруженные в Excel данные с сайта

Вот и все хитрости :)

Ссылки по теме

  • Импорт курса биткойна с сайта через Power Query
  • Парсинг текста регулярными выражениями (RegExp) в Power Query
  • Параметризация путей к данным в Power Query

Парсить сайты в Excel достаточно просто если использовать облачную версию софта Google Таблицы (Sheets/Doc), которые без труда позволяют использовать мощности поисковика для отправки запросов на нужные сайты.

  • Подготовка;
  • IMPORTXML;
  • IMPORTHTML;
  • Обратная конвертация.

Видеоинструкция

Подготовка к парсингу сайтов в Excel (Google Таблице)

Для того, чтобы начать парсить сайты потребуется в первую очередь перейти в Google Sheets, что можно сделать открыв страницу:

https://www.google.com/intl/ru_ru/sheets/about/

Главная страница Google таблицы

Потребуется войти в Google Аккаунт, после чего нажать на «Создать» (+).

Создание нового документа в Google Таблицах

Теперь можно переходить к парсингу, который можно выполнить через 2 основные функции:

  • IMPORTXML. Позволяет получить практически любые данные с сайта, включая цены, наименования, картинки и многое другое;
  • IMPORTHTML. Позволяет получить данные из таблиц и списков.

Однако, все эти методы работают на основе ссылок на страницы, если таблицы с URL-адресами нет, то можно ускорить этот сбор через карту сайта (Sitemap). Для этого добавляем к домену сайта конструкцию «/robots.txt». Например, «seopulses.ru/robots.txt».

Здесь открываем URL с картой сайта:

robots.txt сайта для парсинга в Excel

Нас интересует список постов, поэтому открываем первую ссылку.

Карта сайта для парсинга в Excel

Получаем полный список из URL-адресов, который можно сохранить, кликнув правой кнопкой мыши и нажав на «Сохранить как» (в Google Chrome).

Скачивание карты сайта для парсинга в Эксель

Теперь на компьютере сохранен файл XML, который можно открыть через текстовые редакторы, например, Sublime Text или NotePad++.

Карта сайта в текстовом рекдакторе NotePad++

Чтобы обработать информацию корректно следует ознакомиться с инструкцией открытия XML-файлов в Excel (или создания), после чего данные будут поданы в формате таблицы.

Список URL чтобы можно было спарсить в Excel

Все готово, можно переходить к методам парсинга.

IPMORTXML для парсинга сайтов в Excel

Синтаксис IMPORTXML в Google Таблице

Для того, чтобы использовать данную функцию потребуется в таблице написать формулу:

=IMPORTXML(Ссылка;Запрос)

Пример использования IMPORTXML в Google Таблице

Где:

  • Ссылка — URL-адрес страницы;
  • Запрос – в формате XPath.

С примером можно ознакомиться в:

https://docs.google.com/spreadsheets/d/1xmzdcBPap6lA5Gtwm1hjQfDHf3kCQdbxY3HM11IqDqY/edit#gid=0

Примеры использования IMPORTXML в Google Doc

Парсинг названий

Для работы с парсингом через данную функцию потребуется знание XPATH и составление пути в этом формате. Сделать это можно открыв консоль разработчика. Для примера будет использоваться сайт крупного интернет-магазина и в первую очередь необходимо в Google Chrome открыть окно разработчика кликнув правой кнопкой мыли и в выпавшем меню выбрать «Посмотреть код» (сочетание клавиш CTRL+Shift+I).

Просмотр кода страницы в Google Chrome

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

//h1

И как следствие формула:

=IMPORTXML(A2;»//h1″)

Пример использования IMPORTXML для парсинга H1 в Google Таблице

Важно! Запрос XPath пишется в кавычках «запрос».

Парсинг различных элементов

Если мы хотим получить баллы, то нам потребуется обратиться к элементу div с классом product-standart-bonus поэтому получаем:

//div[@class=’product-standart-bonus’]

Пример рассмотрения структуры XPath при рассмотрении кода сайта

В этом случае первый тег div обозначает то, откуда берутся данные, когда в скобках [] уточняется его уникальность.

Для уточнения потребуется указать тип в виде @class, который может быть и @id, а после пишется = и в одинарных кавычках ‘значение’ пишется запрос.

Однако, нужное нам значение находиться глубже в теге span, поэтому добавляем /span и вводим:

//div[@class=’product-standart-bonus’]/span

В документе:

IMPORTXML в Google Doc с запросом XPath

Парсинг цен без знаний XPath

Если нет знаний XPath и необходимо быстро получить информацию, то требуется выбрав нужный элемент в консоли разработчика кликнуть правой клавишей мыши и в меню выбрать «Copy»-«XPath». Например, при поиске запроса цены получаем:

Копирование XPath для дальнейшего парсинга

//*[@id=»showcase»]/div/div[3]/div[2]/div[2]/div[1]/div[2]/div/div[1]

Важно! Следует изменить » на одинарные кавычки ‘.

Далее используем ее вместе с IMPORTXML.

Использование IMPORTXML в Google Sheets

Все готово цены получены.

Простые формулы с IMPORTXML в Google Sheets

Чтобы получить title страницы необходимо использовать запрос:

=IMPORTXML(A3;»//title»)

IMPORTXML для парсинга title страницы в Google Sheets

Для вывода description стоит использовать:

=IMPORTXML(A3;»//description»)

IMPORTXML для парсинга description страницы в Google Таблице

Первый заголовок (или любой другой):

=IMPORTXML(A3;»//h1″)

IMPORTXML для парсинга H1 страницы в Google Doc

IMPORTHTML для создания парсера веи-ресурсов в Эксель

Синтаксис IMPORTXML в Google Таблице

Для того, чтобы использовать данную функцию потребуется в таблице написать формулу:

=IMPORTXML(Ссылка;Запрос;Индекс)

Использование IMPORTHTML с list в Google Sheets

Где:

  • Ссылка — URL-адрес страницы;
  • Запрос – может быть в формате «table» или «list», выгружающий таблицу и список, соответственно.
  • Индекс – порядковый номер элемента.

С примерами можно ознакомиться в файле:

https://docs.google.com/spreadsheets/d/1GpcGZd7CW4ugGECFHVMqzTXrbxHhdmP-VvIYtavSp4s/edit#gid=0

Пример использования IMPORTHTML в Google Doc

Парсинг таблиц

В примерах будет использоваться данная статья, перейдя на которую можно открыть консоль разработчика (в Google Chrome это можно сделать кликнув правой клавишей мыши и выбрав пункт «Посмотреть код» или же нажав на сочетание клавиш «CTRL+Shift+I»).

Просмотр кода страницы в Google Chrome

Теперь просматриваем код таблицы, которая заключена в теге <table>.

Поиск в коде страницы таблицы для парсинга через IMPORTHTML в Google Таблицах

Данный элемент можно будет выгрузить при помощи конструкции:

=IMPORTHTML(A2;»table»;1)

Пример использования IMPORTHTML c table в Google Doc

  • Где A2 ячейка со ссылкой;
  • table позволяет получить данные с таблицы;
  • 1 – номер таблицы.

Важно! Сам запрос table или list записывается в кавычках «запрос».

Парсинг списков

Получить список, заключенный в тегах <ul>…</ul> при помощи конструкции.

=IMPORTHTML(A2;»list»;1)

Пример использования IMPORTHTML c list в Google Sheets

В данном случае речь идет о меню, которое также представлено в виде списка.

Просмотр списка в коде сайта для использования с IMPORTHTML c list в Google Таблицах

Если использовать индекс третей таблицы, то будут получены данные с третей таблицы в меню:

Просмотр третьего списка в коде сайта для использования с IMPORTHTML c list с индексом 3 в Google Docs

Формула:

=IMPORTHTML(A2;»list»;2)

Просмотр третьего списка в коде сайта для использования с IMPORTHTML c list с индексом 3 в Google Docs

Все готово, данные получены.

Обратная конвертация

Чтобы превратить Google таблицу в MS Excel потребуется кликнуть на вкладку «Файл»-«Скачать»-«Microsoft Excel».

Скачивание файла MS Excel в Google Doc

Все готово, пример можно скачать ниже.

Сохраненный файл MS Excel из Google Sheets

Пример:

https://docs.google.com/spreadsheets/d/1xmzdcBPap6lA5Gtwm1hjQfDHf3kCQdbxY3HM11IqDqY/edit

Структура программы «Парсер сайтов»

Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.

Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными, разбиение значения на массив и обработка каждого элемента в отдельности, вывод характеристик в отдельные столбцы, автоматический поиск цены товара на странице, поддержка форматов JSON и XML).

В парсере сайтов поддерживается авторизация на сайтах, выбор региона, GET и POST запросы, приём и отправка Cookies и заголовков запроса, получение исходных данных для парсинга с листа Excel, многопоточность (до 200 потоков), распознавание капчи через сервис RuCaptcha.com, работа через браузер (IE), кеширование, рекурсивный поиск страниц на сайте, сохранение загруженных изображений товара под заданными именами в одну или несколько папок, и многое другое.

Поиск нужных данных на страницах сайта выполняется в парсере путем поиска тегов и/или атрибутов тегов (по любому свойству и его значению). Специализированные функции для работы с HTML позволяют разными способами преобразовывать HTML-таблицы в текст (или пары вида название-значение), автоматически находить ссылки пейджера, чистить HTML от лишних данных.

За счёт тесной интеграции с Excel, надстройка Parser может считывать любые данные из файлов Excel, создавать отдельные листы и файлы, динамически формировать столбцы для вывода, а также использовать всю мощь встроенных в Excel возможностей.
Поддерживается также сбор данных из текстовых файлов (формата Word, XML, TXT) из заданной пользователем папки, а также преобразование файлов Excel из одного формата таблицы в другой (обработка и разбиение данных на отдельные столбцы)

В программе «Парсер сайтов» можно настроить обработку нескольких сайтов. Перед запуском парсинга (кнопкой на панели инструментов Excel) можно выбрать ранее настроенный сайт из выпадающего списка.

Пример использования парсера для мониторинга цен конкурентов

Дополнительные видеоинструкции, а также подробное описание функционала, можно найти в разделе Справка по программе

В программе можно настроить несколько парсеров (обработчиков сайтов).
Любой из парсеров настраивается и работает независимо от других.

Примеры настроенных парсеров (можно скачать, запустить, посмотреть настройки)

Видеоинструкция (2 минуты), как запустить готовый (уже настроенный) парсер

Настройка программы, — дело не самое простое (для этого, надо хоть немного разбираться в HTML)

Если вам нужен готовый парсер, но вы не хотите разбираться с настройкой,
— закажите настройку парсера разработчику программы. Стоимость настройки под конкретный сайт — от 2000 рублей.
(настройка под заказ выполняется только при условии приобретения лицензии на надстройку «Парсер» (3300 руб)

Инструкция (с видео) по заказу настройки парсера
По всем вопросам, готов проконсультировать вас в Скайпе.

Программа не привязана к конкретному файлу Excel.
Вы в настройках задаёте столбец с исходными данными (ссылками или артикулами),
настраиваете формирование ссылок и подстановку данных с сайта в нужные столбцы,
нажимаете кнопку, — и ваша таблица заполняется данными с сайта.

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

Справка по программе «Парсер сайтов»

Можно попробовать разобраться с работой программы на примерах настроенных парсеров

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

Разберем на конкретном примере по получению информации с сайта Минюста, а именно, нам необходим перечень действующих адвокатов Российской Федерации. Кнопки «выгрузить списочно всех адвокатов» — конечно же, нет. На официальном сайте http://lawyers.minjust.ru/ выводится по 20 адвокатов на 1 странице, всего 74 754 страниц, итого на выходе мы должны получить чуть меньше 150 тыс. адвокатов.

Для начала открываем VBA и создаем объект InternetExplorer, посредством которого будем получать данные.

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

Имея информацию о ссылке страницы — осуществляем их перебор, загружаем в InternetExplorer и забираем все данные со страницы.

В коде страницы представлена структура таблицы со всеми столбцами, которые нам необходимы: реестровый номер, ФИО адвоката, субъект РФ, номер удостоверения, текущий статус.

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

В итоге получаем список всех адвокатов в таблицу Excel для дальнейшей обработки.

Время на прочтение
10 мин

Количество просмотров 331K

30+ парсеров для сбора данных с любого сайта

Десктопные/облачные, платные/бесплатные, для SEO, для совместных покупок, для наполнения сайтов, для сбора цен… В обилии парсеров можно утонуть.

Мы разложили все по полочкам и собрали самые толковые инструменты парсинга — чтобы вы могли быстро и просто собрать открытую информацию с любого сайта.

Зачем нужны парсеры

Парсер — это программа, сервис или скрипт, который собирает данные с указанных веб-ресурсов, анализирует их и выдает в нужном формате.

С помощью парсеров можно делать много полезных задач:

  • Цены. Актуальная задача для интернет-магазинов. Например, с помощью парсинга вы можете регулярно отслеживать цены конкурентов по тем товарам, которые продаются у вас. Или актуализировать цены на своем сайте в соответствии с ценами поставщика (если у него есть свой сайт).
  • Товарные позиции: названия, артикулы, описания, характеристики и фото. Например, если у вашего поставщика есть сайт с каталогом, но нет выгрузки для вашего магазина, вы можете спарсить все нужные позиции, а не добавлять их вручную. Это экономит время.
  • Метаданные: SEO-специалисты могут парсить содержимое тегов title, description и другие метаданные.
  • Анализ сайта. Так можно быстро находить страницы с ошибкой 404, редиректы, неработающие ссылки и т. д.

Для справки. Есть еще серый парсинг. Сюда относится скачивание контента конкурентов или сайтов целиком. Или сбор контактных данных с агрегаторов и сервисов по типу Яндекс.Карт или 2Гис (для спам-рассылок и звонков). Но мы будем говорить только о белом парсинге, из-за которого у вас не будет проблем.

Где взять парсер под свои задачи

Есть несколько вариантов:

  1. Оптимальный — если в штате есть программист (а еще лучше — несколько программистов). Поставьте задачу, опишите требования и получите готовый инструмент, заточенный конкретно под ваши задачи. Инструмент можно будет донастраивать и улучшать при необходимости.
  2. Воспользоваться готовыми облачными парсерами (есть как бесплатные, так и платные сервисы).
  3. Десктопные парсеры — как правило, программы с мощным функционалом и возможностью гибкой настройки. Но почти все — платные.
  4. Заказать разработку парсера «под себя» у компаний, специализирующихся на разработке (этот вариант явно не для желающих сэкономить).

Первый вариант подойдет далеко не всем, а последний вариант может оказаться слишком дорогим.

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

Законно ли парсить данные?

В законодательстве РФ нет запрета на сбор открытой информации в интернете. Право свободно искать и распространять информацию любым законным способом закреплено в четвертом пункте 29 статьи Конституции.

Допустим, вам нужно спарсить цены с сайта конкурента. Эта информация есть в открытом доступе, вы можете сами зайти на сайт, посмотреть и вручную записать цену каждого товара. А с помощью парсинга вы делаете фактически то же самое, только автоматизированно.

Но если вы хотите собрать персональные данные пользователей и использовать их для email-рассылок или таргетированной рекламы, это уже будет незаконно (эти данные защищены законом о персональных данных).

Десктопные и облачные парсеры

Облачные парсеры

Основное преимущество облачных парсеров — не нужно ничего скачивать и устанавливать на компьютер. Вся работа производится «в облаке», а вы только скачиваете результаты работы алгоритмов. У таких парсеров может быть веб-интерфейс и/или API (полезно, если вы хотите автоматизировать парсинг данных и делать его регулярно).

Например, вот англоязычные облачные парсеры:

  • Import.io,
  • Mozenda (доступна также десктопная версия парсера),
  • Octoparce,
  • ParseHub.

Из русскоязычных облачных парсеров можно привести такие:

  • Xmldatafeed,
  • Диггернаут,
  • Catalogloader.

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

Десктопные парсеры

Большинство десктопных парсеров разработаны под Windows — на macOS их необходимо запускать с виртуальных машин. Также некоторые парсеры имеют портативные версии — можно запускать с флешки или внешнего накопителя.

Популярные десктопные парсеры:

  • ParserOK,
  • Datacol,
  • Screaming Frog, ComparseR, Netpeak Spider — об этих инструментах чуть позже поговорим подробнее.

Виды парсеров по технологии

Браузерные расширения

Для парсинга данных есть много браузерных расширений, которые собирают нужные данные из исходного кода страниц и позволяют сохранять в удобном формате (например, в XML или XLSX).

Парсеры-расширения — хороший вариант, если вам нужно собирать небольшие объемы данных (с одной или парочки страниц). Вот популярные парсеры для Google Chrome:

  • Parsers;
  • Scraper;
  • Data Scraper;
  • Kimono.

Надстройки для Excel

Программное обеспечение в виде надстройки для Microsoft Excel. Например, ParserOK. В подобных парсерах используются макросы — результаты парсинга сразу выгружаются в XLS или CSV.

Google Таблицы

С помощью двух несложных формул и Google Таблицы можно собирать любые данные с сайтов бесплатно.

Эти формулы: IMPORTXML и IMPORTHTML.

IMPORTXML

Функция использует язык запросов XPath и позволяет парсить данные с XML-фидов, HTML-страниц и других источников.

Вот так выглядит функция:

IMPORTXML("https://site.com/catalog"; "//a/@href")

Функция принимает два значения:

  • ссылку на страницу или фид, из которого нужно получить данные;
  • второе значение — XPath-запрос (специальный запрос, который указывает, какой именно элемент с данными нужно спарсить).

Хорошая новость в том, что вам не обязательно изучать синтаксис XPath-запросов. Чтобы получить XPath-запрос для элемента с данными, нужно открыть инструменты разработчика в браузере, кликнуть правой кнопкой мыши по нужному элементу и выбрать: Копировать → Копировать XPath.

30+ парсеров для сбора данных с любого сайта

С помощью IMPORTXML можно собирать практически любые данные с html-страниц: заголовки, описания, мета-теги, цены и т.д.

IMPORTHTML

У этой функции меньше возможностей — с ее помощью можно собрать данные из таблиц или списков на странице. Вот пример функции IMPORTHTML:

IMPORTHTML("https://https://site.com/catalog/sweets"; "table"; 4)

Она принимает три значения:

  • Ссылку на страницу, с которой необходимо собрать данные.
  • Параметр элемента, который содержит нужные данные. Если хотите собрать информацию из таблицы, укажите «table». Для парсинга списков — параметр «list».
  • Число — порядковый номер элемента в коде страницы.

Об использовании 16 функций Google Таблиц для целей SEO читайте в нашей статье. Здесь все очень подробно расписано, с примерами по каждой функции.

Виды парсеров по сферам применения

Для организаторов СП (совместных покупок)

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

Чем удобны эти парсеры:

  • интуитивно понятный интерфейс;
  • возможность выгружать отдельные товары, разделы или весь каталог;
  • можно выгружать данные в удобном формате. Например, в Облачном парсере доступно большое количество форматов выгрузки, кроме стандартных XLSX и CSV: адаптированный прайс для Tiu.ru, выгрузка для Яндекс.Маркета и т. д.

Популярные парсеры для СП:

  • SPparser.ru,
  • Облачный парсер,
  • Турбо.Парсер,
  • PARSER.PLUS,
  • Q-Parser.

Парсеры цен конкурентов

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

Вот три таких инструмента:

  • Marketparser,
  • Xmldatafeed,
  • ALL RIVAL.

Парсеры для быстрого наполнения сайтов

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

В подобных парсерах можно автоматически добавлять свою наценку (например, если вы парсите данные с сайта поставщика с оптовыми ценами). Также можно настраивать автоматический сбор или обновление данных по расписания.

Примеры таких парсеров:

  • Catalogloader,
  • Xmldatafeed,
  • Диггернаут.

Парсеры для SEO-специалистов

Отдельная категория парсеров — узко- или многофункциональные программы, созданные специально под решение задач SEO-специалистов. Такие парсеры предназначены для упрощения комплексного анализа оптимизации сайта. С их помощью можно:

  • анализировать содержимое robots.txt и sitemap.xml;
  • проверять наличие title и description на страницах сайта, анализировать их длину, собирать заголовки всех уровней (h1-h6);
  • проверять коды ответа страниц;
  • собирать и визуализировать структуру сайта;
  • проверять наличие описаний изображений (атрибут alt);
  • анализировать внутреннюю перелинковку и внешние ссылки;
  • находить неработающие ссылки;
  • и многое другое.

Пройдемся по нескольким популярным парсерам и рассмотрим их основные возможности и функционал.

Парсер метатегов и заголовков PromoPult

Стоимость: первые 500 запросов — бесплатно. Стоимость последующих запросов зависит от количества: до 1000 — 0,04 руб./запрос; от 10000 — 0,01 руб.

Возможности

С помощью парсера метатегов и заголовков можно собирать заголовки h1-h6, а также содержимое тегов title, description и keywords со своего или чужих сайтов.

Инструмент пригодится при оптимизации своего сайта. С его помощью можно обнаружить:

  • страницы с пустыми метатегами;
  • неинформативные заголовки или заголовки с ошибками;
  • дубли метатегов и т.д.

Также парсер полезен при анализе SEO конкурентов. Вы можете проанализировать, под какие ключевые слова конкуренты оптимизируют страницы своих сайтов, что прописывают в title и description, как формируют заголовки.

30+ парсеров для сбора данных с любого сайта

Сервис работает «в облаке». Для начала работы необходимо добавить список URL и указать, какие данные нужно спарсить. URL можно добавить вручную, загрузить XLSX-таблицу со списком адресов страниц, или вставить ссылку на карту сайта (sitemap.xml).

Работа с инструментом подробно описана в статье «Как в один клик собрать мета-теги и заголовки с любого сайта?».

Парсер метатегов и заголовков — не единственный инструмент системы PromoPult для парсинга. В SEO-модуле системы можно бесплатно спарсить ключевые слова, по которым добавленный в систему сайт занимает ТОП-50 в Яндексе/Google.

30+ парсеров для сбора данных с любого сайта

Здесь же на вкладке “Слова ваших конкурентов” вы можете выгрузить ключевые слова конкурентов (до 10 URL за один раз).

30+ парсеров для сбора данных с любого сайта

Подробно о работе с парсингом ключей в SEO-модуле PromoPult читайте здесь.

Netpeak Spider

Стоимость: от 19$ в месяц, есть 14-дневный пробный период.

Парсер для комплексного анализа сайтов. С Netpeak Spider можно:

  • провести технический аудит сайта (обнаружить битые ссылки, проверить коды ответа страниц, найти дубли и т.д.). Парсер позволяет находить более 80 ключевых ошибок внутренней оптимизации;
  • проанализировать основные SEO-параметры (файл robots.txt, проанализировать структуру сайта, проверить редиректы);
  • парсить данные с сайтов с помощью регулярных выражений, XPath-запросов и других методов;
  • также Netpeak Spider может импортировать данные из Google Аналитики, Яндекс.Метрики и Google Search Console.

30+ парсеров для сбора данных с любого сайта

Screaming Frog SEO Spider

Стоимость: лицензия на год — 149 фунтов, есть бесплатная версия.

Многофункциональный инструмент для SEO-специалистов, подходит для решения практически любых SEO-задач:

  • поиск битых ссылок, ошибок и редиректов;
  • анализ мета-тегов страниц;
  • поиск дублей страниц;
  • генерация файлов sitemap.xml;
  • визуализация структуры сайта;
  • и многое другое.

30+ парсеров для сбора данных с любого сайта

В бесплатной версии доступен ограниченный функционал, а также есть лимиты на количество URL для парсинга (можно парсить всего 500 url). В платной версии таких лимитов нет, а также доступно больше возможностей. Например, можно парсить содержимое любых элементов страниц (цены, описания и т.д.).

Подробно том, как пользоваться Screaming Frog, мы писали в статье «Парсинг любого сайта «для чайников»: ни строчки программного кода».

ComparseR

Стоимость: 2000 рублей за 1 лицензию. Есть демо-версия с ограничениями.

Еще один десктопный парсер. С его помощью можно:

  • проанализировать технические ошибки на сайте (ошибки 404, дубли title, внутренние редиректы, закрытые от индексации страницы и т.д.);
  • узнать, какие страницы видит поисковой робот при сканировании сайта;
  • основная фишка ComparseR — парсинг выдачи Яндекса и Google, позволяет выяснить, какие страницы находятся в индексе, а какие в него не попали.

30+ парсеров для сбора данных с любого сайта

Анализ сайта от PR-CY

Стоимость: платный сервис, минимальный тариф — 990 рублей в месяц. Есть 7-дневная пробная версия с полным доступом к функционалу.

Онлайн-сервис для SEO-анализа сайтов. Сервис анализирует сайт по подробному списку параметров (70+ пунктов) и формирует отчет, в котором указаны:

  • обнаруженные ошибки;
  • варианты исправления ошибок;
  • SEO-чеклист и советы по улучшению оптимизации сайта.

30+ парсеров для сбора данных с любого сайта

Анализ сайта от SE Ranking

Стоимость: платный облачный сервис. Доступно две модели оплаты: ежемесячная подписка или оплата за проверку.

Стоимость минимального тарифа — 7$ в месяц (при оплате годовой подписки).

Возможности:

  • сканирование всех страниц сайта;
  • анализ технических ошибок (настройки редиректов, корректность тегов canonical и hreflang, проверка дублей и т.д.);
  • поиск страниц без мета-тегов title и description, определение страниц со слишком длинными тегами;
  • проверка скорости загрузки страниц;
  • анализ изображений (поиск неработающих картинок, проверка наличия заполненных атрибутов alt, поиск «тяжелых» изображений, которые замедляют загрузку страниц);
  • анализ внутренних ссылок.

30+ парсеров для сбора данных с любого сайта

Xenu’s Link Sleuth

Стоимость: бесплатно.

Десктопный парсер для Windows. Используется для парсинга все url, которые есть на сайте:

  • ссылки на внешние ресурсы;
  • внутренние ссылки (перелинковка);
  • ссылки на изображения, скрипты и другие внутренние ресурсы.

Часто применяется для поиска неработающих ссылок на сайте.

30+ парсеров для сбора данных с любого сайта

A-Parser

Стоимость: платная программа с пожизненной лицензией. Минимальный тарифный план — 119$, максимальный — 279$. Есть демо-версия.

Многофункциональный SEO-комбайн, объединяющий 70+ разных парсеров, заточенных под различные задачи:

  • парсинг ключевых слов;
  • парсинг данных с Яндекс и Google карт;
  • мониторинг позиций сайтов в поисковых системах;
  • парсинг контента (текст, изображения, видео) и т.д.

Кроме набора готовых инструментов, можно создать собственный парсер с помощью регулярных выражений, языка запросов XPath или Javascript. Есть доступ по API.

30+ парсеров для сбора данных с любого сайта

Чек-лист по выбору парсера

Краткий чек-лист, который поможет выбрать наиболее подходящий инструмент или сервис.

  1. Четко определите, для каких задач вам нужен парсер: анализ SEO конкурентов или мониторинг цен, сбор данных для наполнения каталога, съем позиций и т.д.
  2. Определите, какой объем данных и в каком виде нужно получать.
  3. Определите, как часто вам нужно собирать данные: единоразово или с определенной периодичностью (раз в день/неделю/месяц).
  4. Выберите несколько инструментов, которые подходят для решения ваших задач. Попробуйте демо-версии. Узнайте, предоставляется ли техническая поддержка (желательно даже протестировать ее — задать парочку вопросов и посмотреть, как быстро вы получите ответ и насколько он будет исчерпывающим).
  5. Выберите наиболее подходящий сервис по соотношению цена/качество.

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

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

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

00001.jpg

А состоит этот способ в использовании библиотеки pandas. Конечно же, ее простой не назовешь. Это очень мощный инструмент для аналитики самых разнообразных данных. И в рассмотренном ниже случае мы лишь коснемся небольшого фрагмента из того, что вообще умеет делать эта библиотека.

Что понадобиться?

Для того, чтобы написать данный скрипт нам понадобиться конечно же сам pandas. Библиотеки requests, BeautifulSoup и lxml. А также модуль для записи файлов в формате xlsx – xlsxwriter. Установить их все можно одной командой:

pip install requests bs4 lxml pandas xlsxwriter

А после установки импортировать в скрипт для дальнейшей работы с функциями, которые они предоставляют:

Python:

import requests
from bs4 import BeautifulSoup

import pandas as pd

Так же с сайта, на котором расположены целевые таблицы нужно взять заголовки для запроса. Данные заголовки не нужны для pandas, но нужны для requests. Зачем вообще использовать в данном случае запросы? Тут все просто. Можно и не использовать вовсе. А полученные таблицы при сохранении называть какими-нибудь составными именами, вроде «Таблица 1» и так далее, но гораздо лучше и понятнее, все же собрать данные о том, как называется данная таблица в оригинале. Поэтому, с помощью запросов и библиотеки BeautifulSoup мы просто будем искать название таблицы.

Но, вернемся к заголовкам. Взял я их в инструментах разработчика на вкладке сеть у первого попавшегося запроса.

Python:

headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.174 '
                  'YaBrowser/22.1.3.942 Yowser/2.5 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,'
              'application/signed-exchange;v=b3;q=0.9 '
}

Теперь нужен список, в котором будут перечисляться года, которые представлены в виде таблиц на сайте. Эти года получаются из псевдовыпадающего списка. Я не стал использовать selenium для того, чтобы получить их со страницы. Так как обычный запрос не может забрать эти данные. Они подгружаются с помощью JS скриптов. В данном случае не так уж много данных, которые надо обработать руками. Поэтому я создал список, в которые эти данные и внес вручную:

Python:

num_year_dict = ['443', '442', '441', '440', '439', '438', '437', '436', '435', '434', '433', '432', '431', '426',
                 '425', '1', '2', '165', '884', '1851', '3226', '4385', '4959', '5582', '6297', '6886', '7371',
                 '8071', '8671']

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

df = {}

Назвал я его df, потому как все так называют. И увидев данное название в нужном контексте становиться понятно, что используется pandas. df – это сокращение от DataFrame, то есть, определенный набор данных.

Ну вот, предварительная подготовка закончена. Самое время получать данные. Давайте для начала сходим на одну страницу с таблицей и попробуем получить оттуда данные с помощью pandas.

tables = pd.read_html('https://www.sports.ru/rfpl/table/?s=443&table=0&sub=table')

Здесь была использована функция read_html. Pandas использует библиотеку для парсинга lxml. То есть, примерно это все работает так. Получаются данные со страницы, а затем в коде выполняется поиск с целью найти все таблицы, у которых есть тэг <table>, а далее, внутри таблиц ищутся заголовки и данные под тэгами <tr> и <td>, которые и возвращаются в виде списка формата DataFrame.

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

print(len(tables))

И видим, что найденных таблиц две. Если вывести по очереди элементы списка, то мы увидим, что нужная нам таблица, в данном случае, находиться под индексом 1. Вот ее и распечатаем для просмотра:

print(tables[1])

И вот она полученная таблица:

screenshot1.png

Как видим, в данной таблице помимо нужных нам данных, содержится так же лишний столбец, от которого желательно избавиться. Это, скажем так, можно назвать сопутствующим мусором. Поэтому, полученные данные иногда надо «причесать». Давайте вызовем метод drop и удалим ненужный нам столбец.

tables[1].drop('Unnamed: 0', axis=1, inplace=True)

На то, что нужно удалить столбец указывает параметр axis, который равен 1. Если бы нужно было удалить строку, он был бы равен 0. Ну и указываем название столбца, который нужно удалить. Параметр inplace в значении True указывает на то, что удалить столбец нужно будет в исходных данных, а не возвращать нам их копию с удаленным столбцом.

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

Python:

url = f'https://www.sports.ru/rfpl/table/?s={num}&table=0&sub=table'
req = requests.get(url=url, headers=headers)
soup = BeautifulSoup(req.text, 'lxml')
title_table = soup.find('h2', class_='titleH3').text.split("-")[2].strip().replace("/", "_")

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

df[title_table] = tables[1]

Вот и все. Мы получили данные по одной таблице. Но, не будем забывать, что их больше тридцати. А потому, нужен цикл, чтобы формировать ссылки из созданного ранее списка и делать запросы уже к страницам по ссылке. Давайте полностью оформим код функции. Назовем мы ее, к примеру, get_pd_table(). Ее полный код состоит из всех тех элементов кода, которые мы рассмотрели выше, плюс они запущены в цикле.

Python:

def get_pd_table():
    for num in num_year_dict:
        url = f'https://www.sports.ru/rfpl/table/?s={num}&table=0&sub=table'
        req = requests.get(url=url, headers=headers)
        soup = BeautifulSoup(req.text, 'lxml')
        title_table = soup.find('h2', class_='titleH3').text.split("-")[2].strip().replace("/", "_")
        print(f'Получаю данные из таблицы: "{title_table}"...')
        tables = pd.read_html(url)
        tables[1].drop('Unnamed: 0', axis=1, inplace=True)
        df[title_table] = tables[1]

Итак, когда цикл пробежится по всем ссылкам у нас будет готовый словарь с данными турниров, которые желательно бы записать на отдельные листы. На каждом листе по таблице. Давайте сразу создадим для этого функцию pd_save().

writer = pd.ExcelWriter('./Турнирная таблица ПЛ РФ.xlsx', engine='xlsxwriter')

Создаем объект писателя, в котором указываем имя записываемой книги, и инструмент, с помощью которого будем производить запись в параметре engine=’xlsxwriter’.

После запускаем цикл, в котором создаем объекты, то есть листы для записи из ключей списка с таблицами df, указываем, с помощью какого инструмента будет производиться запись, на какой лист. Имя листа берется из ключа словаря. А также указывается параметр index=False, чтобы не сохранялись индексы автоматически присваиваемые pandas.

df[df_name].to_excel(writer, sheet_name=df_name, index=False)

Ну и после всего сохраняем книгу:

writer.save()

Полный код функции сохранения значений:

Python:

def pd_save():
    writer = pd.ExcelWriter('./Турнирная таблица ПЛ РФ.xlsx', engine='xlsxwriter')
    for df_name in df.keys():
        print(f'Записываем данные в лист: {df_name}')
        df[df_name].to_excel(writer, sheet_name=df_name, index=False)
    writer.save()

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

print(f'Получаю данные из таблицы: "{title_table}"...')

И во вторую функцию, с сообщением о том, данные на какой лист записываются в данный момент.

print(f'Записываем данные в лист: {df_name}')

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

Python:

import requests
from bs4 import BeautifulSoup

import pandas as pd

headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.174 '
                  'YaBrowser/22.1.3.942 Yowser/2.5 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,'
              'application/signed-exchange;v=b3;q=0.9 '
}

num_year_dict = ['443', '442', '441', '440', '439', '438', '437', '436', '435', '434', '433', '432', '431', '426',
                 '425', '1', '2', '165', '884', '1851', '3226', '4385', '4959', '5582', '6297', '6886', '7371',
                 '8071', '8671']

df = {}


def get_pd_table():
    for num in num_year_dict:
        url = f'https://www.sports.ru/rfpl/table/?s={num}&table=0&sub=table'
        req = requests.get(url=url, headers=headers)
        soup = BeautifulSoup(req.text, 'lxml')
        title_table = soup.find('h2', class_='titleH3').text.split("-")[2].strip().replace("/", "_")
        print(f'Получаю данные из таблицы: "{title_table}"...')
        tables = pd.read_html(url)
        tables[1].drop('Unnamed: 0', axis=1, inplace=True)
        df[title_table] = tables[1]


def pd_save():
    writer = pd.ExcelWriter('./Турнирная таблица ПЛ РФ.xlsx', engine='xlsxwriter')
    for df_name in df.keys():
        print(f'Записываем данные в лист: {df_name}')
        df[df_name].to_excel(writer, sheet_name=df_name, index=False)
    writer.save()


def main():
    get_pd_table()
    print(' ')
    pd_save()
    print('n[+] Данные записаны!')


if __name__ == '__main__':
    main()

И ниже результат работы скрипта с уже полученными и записанными таблицами:

screenshot2.png

Как видите, использовать библиотеку pandas, по крайней мере в данном контексте, не очень сложно. Конечно же, это только самая малая часть того, что она умеет. А умеет она собирать и анализировать данные из самых разных форматов, включая такие распространенные, как: cvs, txt, HTML, XML, xlsx.

Ну и думаю, что не всегда данные будут прилетать «чистыми». Скорее всего, периодически будут попадаться мусорные столбцы или строки. Но их не особо то трудно удалить. Нужно только понимать, что и откуда.

В общем, для себя я сделал однозначный вывод – если мне понадобиться парсить табличные значения, то лучше, чем использование pandas, пожалуй и не придумаешь. Можно просто на лету формировать данные из одного формата и переводить тут же в другой без утомительного перебора. К примеру, из формата csv в json.

Спасибо за внимание. Надеюсь, что данная информация будет вам полезна

Структура программы «Парсер сайтов»

Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.

Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными, разбиение значения на массив и обработка каждого элемента в отдельности, вывод характеристик в отдельные столбцы, автоматический поиск цены товара на странице, поддержка форматов JSON и XML).

В парсере сайтов поддерживается авторизация на сайтах, выбор региона, GET и POST запросы, приём и отправка Cookies и заголовков запроса, получение исходных данных для парсинга с листа Excel, многопоточность (до 200 потоков), распознавание капчи через сервис RuCaptcha.com, работа через браузер (IE), кеширование, рекурсивный поиск страниц на сайте, сохранение загруженных изображений товара под заданными именами в одну или несколько папок, и многое другое.

Поиск нужных данных на страницах сайта выполняется в парсере путем поиска тегов и/или атрибутов тегов (по любому свойству и его значению). Специализированные функции для работы с HTML позволяют разными способами преобразовывать HTML-таблицы в текст (или пары вида название-значение), автоматически находить ссылки пейджера, чистить HTML от лишних данных.

За счёт тесной интеграции с Excel, надстройка Parser может считывать любые данные из файлов Excel, создавать отдельные листы и файлы, динамически формировать столбцы для вывода, а также использовать всю мощь встроенных в Excel возможностей.
Поддерживается также сбор данных из текстовых файлов (формата Word, XML, TXT) из заданной пользователем папки, а также преобразование файлов Excel из одного формата таблицы в другой (обработка и разбиение данных на отдельные столбцы)

В программе «Парсер сайтов» можно настроить обработку нескольких сайтов. Перед запуском парсинга (кнопкой на панели инструментов Excel) можно выбрать ранее настроенный сайт из выпадающего списка.

На видео рассказывается о работе с программой, и показан процесс настройки парсера интернет-магазина:

Дополнительные видеоинструкции, а также подробное описание функционала, можно найти в разделе Справка по программе

В программе можно настроить несколько парсеров (обработчиков сайтов).
Любой из парсеров настраивается и работает независимо от других.

Настройка программы, — дело не самое простое (для этого, надо хоть немного разбираться в HTML)

Если вам нужен готовый парсер, но вы не хотите разбираться с настройкой,
— закажите настройку парсера разработчику программы. Стоимость настройки под конкретный сайт — от 2000 рублей.
(настройка под заказ выполняется только при условии приобретения лицензии на надстройку «Парсер» (3300 руб)

Программа не привязана к конкретному файлу Excel.
Вы в настройках задаёте столбец с исходными данными (ссылками или артикулами),
настраиваете формирование ссылок и подстановку данных с сайта в нужные столбцы,
нажимаете кнопку, — и ваша таблица заполняется данными с сайта.

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

Можно попробовать разобраться с работой программы на примерах настроенных парсеров

Как скачать и протестировать программу

Для загрузки надстройки Parser воспользуйтесь кнопкой Скачать программу

Если не удаётся скачать надстройку, читайте инструкцию про антивирус

Если скачали файл, но он не запускается, читайте почему не появляется панель инструментов

Это полнофункциональная пробная (TRIAL) версия, у вас есть 10 дней бесплатного использования ,
в течение которых вы можете протестировать работу программы.

Этого вполне достаточно, чтобы всё настроить и проверить, используя раздел Справка по программе

Если вам понравится, как работает программа, вы можете Купить лицензию

Лицензия (для постоянного использования) стоит 3300 рублей .

В эту стоимость входит активация на 2 компьютера (вы сможете пользоваться программой и на работе, и дома).
Если нужны будут дополнительные активации, их можно будет в любой момент приобрести по 800 рублей за каждый дополнительный компьютер.

  • 767565 просмотров

Комментарии

Здравствуйте.
Пересмотрите видеоинструкцию по программе.
На этапе тестирования нужно подставлять ссылку (из любой ячейки) в поле ИСХОДНОЕ ЗНАЧЕНИЕ в окне тестирования
(а не в параметр URL действия!)
В ходе работы (после запуска парсера), значения будут браться автоматически из ячеек.
А для теста нужно вручную подставлять исходную ссылку.

Здравствуйте, сейчас тестирую ваш парсер.
Возник вопрос при режиме парсера «брать данные с листа, из заданного столбца». Задал столбец, перешел в редакцию списка действий и выбрал действие «Загрузить ИСХОДНЫЙ КОД веб-страницы». При тестировании не загружает, ведь по логике парсер должен исходить из заданного столбца, чего не происходит.
Подставил первое значение с заданного столбца в URL — выдал результаты по 1му значению, остальное пустое при выводе данных на лист. Изменял кодировку — не получается. На фазе тестирования ничего не происходит. Какое действие нужно производить вместо «Загрузить ИСХОДНЫЙ КОД веб-страницы» ?
Основная задача получить прямые ссылки с облака, в заданном столбце ссылки на облако.

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

Здравствуйте, можно ли при помощи этого парсера скачивать картинки с файлообменников? Для примера в экселе есть ссылки на 1 или несколько картинок, при помощи парсера я загружаю исходную страницу по ссылке с экселя, далее ищу тег картинки но не находит. в хтмл коде тег картинки указана как ссылка. пытался прогрузить эту ссылку в парсер, не получается. подскажите пожалуйста в чем может быть проблема

Статья Парсим данные таблиц сайта в Excel с помощью Pandas

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

00001.jpg

А состоит этот способ в использовании библиотеки pandas. Конечно же, ее простой не назовешь. Это очень мощный инструмент для аналитики самых разнообразных данных. И в рассмотренном ниже случае мы лишь коснемся небольшого фрагмента из того, что вообще умеет делать эта библиотека.

Что понадобиться?

Для того, чтобы написать данный скрипт нам понадобиться конечно же сам pandas. Библиотеки requests, BeautifulSoup и lxml. А также модуль для записи файлов в формате xlsx – xlsxwriter. Установить их все можно одной командой:

pip install requests bs4 lxml pandas xlsxwriter

А после установки импортировать в скрипт для дальнейшей работы с функциями, которые они предоставляют:

Так же с сайта, на котором расположены целевые таблицы нужно взять заголовки для запроса. Данные заголовки не нужны для pandas, но нужны для requests. Зачем вообще использовать в данном случае запросы? Тут все просто. Можно и не использовать вовсе. А полученные таблицы при сохранении называть какими-нибудь составными именами, вроде «Таблица 1» и так далее, но гораздо лучше и понятнее, все же собрать данные о том, как называется данная таблица в оригинале. Поэтому, с помощью запросов и библиотеки BeautifulSoup мы просто будем искать название таблицы.

Но, вернемся к заголовкам. Взял я их в инструментах разработчика на вкладке сеть у первого попавшегося запроса.

Теперь нужен список, в котором будут перечисляться года, которые представлены в виде таблиц на сайте. Эти года получаются из псевдовыпадающего списка. Я не стал использовать selenium для того, чтобы получить их со страницы. Так как обычный запрос не может забрать эти данные. Они подгружаются с помощью JS скриптов. В данном случае не так уж много данных, которые надо обработать руками. Поэтому я создал список, в которые эти данные и внес вручную:

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

Назвал я его df, потому как все так называют. И увидев данное название в нужном контексте становиться понятно, что используется pandas. df – это сокращение от DataFrame, то есть, определенный набор данных.

Ну вот, предварительная подготовка закончена. Самое время получать данные. Давайте для начала сходим на одну страницу с таблицей и попробуем получить оттуда данные с помощью pandas.

Здесь была использована функция read_html. Pandas использует библиотеку для парсинга lxml. То есть, примерно это все работает так. Получаются данные со страницы, а затем в коде выполняется поиск с целью найти все таблицы, у которых есть тэг <table>, а далее, внутри таблиц ищутся заголовки и данные под тэгами <tr> и <td>, которые и возвращаются в виде списка формата DataFrame.

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

И видим, что найденных таблиц две. Если вывести по очереди элементы списка, то мы увидим, что нужная нам таблица, в данном случае, находиться под индексом 1. Вот ее и распечатаем для просмотра:

И вот она полученная таблица:

screenshot1.png

Как видим, в данной таблице помимо нужных нам данных, содержится так же лишний столбец, от которого желательно избавиться. Это, скажем так, можно назвать сопутствующим мусором. Поэтому, полученные данные иногда надо «причесать». Давайте вызовем метод drop и удалим ненужный нам столбец.

tables[1].drop(‘Unnamed: 0’, axis=1, inplace=True)

На то, что нужно удалить столбец указывает параметр axis, который равен 1. Если бы нужно было удалить строку, он был бы равен 0. Ну и указываем название столбца, который нужно удалить. Параметр inplace в значении True указывает на то, что удалить столбец нужно будет в исходных данных, а не возвращать нам их копию с удаленным столбцом.

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

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

Вот и все. Мы получили данные по одной таблице. Но, не будем забывать, что их больше тридцати. А потому, нужен цикл, чтобы формировать ссылки из созданного ранее списка и делать запросы уже к страницам по ссылке. Давайте полностью оформим код функции. Назовем мы ее, к примеру, get_pd_table(). Ее полный код состоит из всех тех элементов кода, которые мы рассмотрели выше, плюс они запущены в цикле.

Итак, когда цикл пробежится по всем ссылкам у нас будет готовый словарь с данными турниров, которые желательно бы записать на отдельные листы. На каждом листе по таблице. Давайте сразу создадим для этого функцию pd_save().

writer = pd.ExcelWriter(‘./Турнирная таблица ПЛ РФ.xlsx’, engine=’xlsxwriter’)

Создаем объект писателя, в котором указываем имя записываемой книги, и инструмент, с помощью которого будем производить запись в параметре engine=’xlsxwriter’.

После запускаем цикл, в котором создаем объекты, то есть листы для записи из ключей списка с таблицами df, указываем, с помощью какого инструмента будет производиться запись, на какой лист. Имя листа берется из ключа словаря. А также указывается параметр index=False, чтобы не сохранялись индексы автоматически присваиваемые pandas.

df[df_name].to_excel(writer, sheet_name=df_name, index=False)

Ну и после всего сохраняем книгу:

Полный код функции сохранения значений:

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

И во вторую функцию, с сообщением о том, данные на какой лист записываются в данный момент.

print(f’Записываем данные в лист: ‘)

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

И ниже результат работы скрипта с уже полученными и записанными таблицами:

screenshot2.png

Как видите, использовать библиотеку pandas, по крайней мере в данном контексте, не очень сложно. Конечно же, это только самая малая часть того, что она умеет. А умеет она собирать и анализировать данные из самых разных форматов, включая такие распространенные, как: cvs, txt, HTML, XML, xlsx.

Ну и думаю, что не всегда данные будут прилетать «чистыми». Скорее всего, периодически будут попадаться мусорные столбцы или строки. Но их не особо то трудно удалить. Нужно только понимать, что и откуда.

В общем, для себя я сделал однозначный вывод – если мне понадобиться парсить табличные значения, то лучше, чем использование pandas, пожалуй и не придумаешь. Можно просто на лету формировать данные из одного формата и переводить тут же в другой без утомительного перебора. К примеру, из формата csv в json.

Спасибо за внимание. Надеюсь, что данная информация будет вам полезна

VBA Excel. Парсинг сайтов, html-страниц и файлов

Пользовательская функция GetHTML1 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «msxml2.xmlhttp»:

Парсинг сайтов (WinHttp.WinHttpRequest.5.1)

Пользовательская функция GetHTML2 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «WinHttp.WinHttpRequest.5.1»:

Парсинг файлов (ADODB.Stream)

Пользовательская функция GetText (VBA Excel) для извлечения (парсинга) текстового содержимого из файла (.txt, .csv, .mhtml), сохраненного на диск компьютера, по его полному имени (адресу) с помощью объекта «ADODB.Stream»:

Примеры записи текста в переменную

Общая формула записи текста, извлеченного с помощью пользовательских функций VBA Excel, в переменную:

Извлечение данных из html

В понятие «парсинг», кроме извлечения текстового содержимого сайтов, html-страниц или файлов, входит поиск и извлечение конкретных данных из всего полученного текстового содержимого.

Пример извлечения email-адресов из текста, присвоенного переменной, смотрите в последнем параграфе статьи: Регулярные выражения (объекты, свойства, методы).

Парсинг содержимого тегов

Извлечение содержимого тегов с помощью метода getElementsByTagName объекта HTMLFile:

С помощью этого кода извлекается текст, расположенный между открывающим и закрывающим тегами. В примере — это текст 6-го абзаца (p) между 5-й (нумерация с 0) парой отрывающего <p> и закрывающего </p> тегов.

Примеры тегов, используемых в html: «p» , «title» , «h1» , «h2» , «table» , «div» , «script» .

Пример извлечения содержимого тега «title» :

Парсинг содержимого Id

Извлечение текстового содержимого html-элементов, имеющих уникальный идентификатор — Id, с помощью метода getElementById объекта HTMLFile:

Для реализации представленных здесь примеров могут понадобиться дополнительные библиотеки. В настоящее время у меня подключены следующие (к данной теме могут относиться последние шесть):

  • Visual Basic For Applications
  • Microsoft Excel 16.0 Object Library
  • OLE Automation
  • Microsoft Office 16.0 Object Library
  • Microsoft Forms 2.0 Object Library
  • Ref Edit Control
  • Microsoft Scripting Runtime
  • Microsoft Word 16.0 Object Library
  • Microsoft Windows Common Controls 6.0 (SP6)
  • Microsoft ActiveX Data Objects 6.1 Library
  • Microsoft ActiveX Data Objects Recordset 6.0 Library
  • Microsoft HTML Object Library
  • Microsoft Internet Controls
  • Microsoft Shell Controls And Automation
  • Microsoft XML, v6.0

С этим набором библиотек все примеры работают. Тестирование проводилось в VBA Excel 2016.

Маркетинг  •  08 марта  2023  •  5 мин чтения

Разведка для маркетолога: как работает парсинг сайтов

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

Яндекс Практикум

Chief Digital Officer, эксперт

Яндекс Практикум

Иллюстратор

Яндекс Практикум

Chief Digital Officer, эксперт

Яндекс Практикум

Иллюстратор

  • Что такое парсинг
  • Зачем нужен парсинг сайтов
  • Как используют полученные данные
  • Классификация парсеров
  • Как сделать парсинг сайта без специальных программ
  • Сервисы для парсинга
  • Как выбрать парсер
  • Совет эксперта

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

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

Обычно площадки блокируют IP-адреса, которые ведут себя подозрительно, то есть отправляют неестественно много запросов. Поэтому людям иногда приходится доказывать капчей, что они не роботы. Чтобы парсер не заблокировали, он использует прокси-серверы. Прокси — это посредники, которые подменяют IP-адрес парсера своим и не дают сайту увидеть, что на него много раз заходят с одного адреса.

Владислав Бочаров

Многие крупные сайты защищаются от парсинга, потому что его принципы работы схожи с DDOS-атакой. Если парсят большой сайт с тысячами страниц, то смотрят их через множество роботов-парсеров, и этим тревожат систему безопасности — площадке кажется, что её атакуют. Были случаи, что служба безопасности вычисляла людей по покупке прокси и писала вопросы в духе: «Зачем вы атакуете наш сайт?» Но если объяснить, что это был парсинг, вопросов больше не задают — парсинг нельзя запретить.

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

Парсить — законно. Если публичные данные из открытых источников можно достать вручную, то их можно собирать и автоматизировано. Но есть ограничения, например, запрещено:
● перегружать чужие веб-страницы до частичной или полной неработоспособности;
● распространять личные данные пользователей, полученные с помощью парсинга;
● использовать парсинг для спама или плагиата.

Зачем нужен парсинг сайтов

Парсинг собирает данные, которые помогают маркетологу быстрее собирать и обрабатывать информацию: то, что человек будет искать вручную несколько часов, программа сделает за пару минут.

Достать информацию с сайта, где нужна регистрация, не получится — сканировать можно только открытые источники. Но и таких данных в интернете достаточно:
● ассортимент и цены в каталоге,
● контент,
● поисковые фразы,
● открытые данные пользователей из соцсетей,
● отзывы.

Как используют полученные данные

Расскажем о четырёх вариантах, но на самом деле их количество ограничено только фантазией. Можно использовать парсер даже в быту, например, экономить на пицце: собрать рекламные объявления пиццерий в соцсетях, посмотреть, у кого какие акции проходят, и выбрать самое выгодное приложение.

Наполнение интернет‑магазина

Можно парсить товары с зарубежного сайта или сайта поставщика. Это упрощает работу: из Excel-базы легко импортировать товары на свою площадку. Многие собирают ещё и зарубежные описания товаров — можно подключить к парсеру переводчик и получить уникальные тексты для наполнения сайта. Например, так делают компании-дропшипперы, которые продают товары напрямую от зарубежных поставщиков.

Ещё можно наполнять ресурсы, используя площадки конкурентов, но важно избегать плагиата.

Например, если открыть онлайн-аптеку, инструкции к препаратам можно собрать с сайта конкурентов. Это сэкономит время и не будет плагиатом — инструкции стандартные.

Конкурентная разведка

Парсинг страницы сайта удобно использовать для мониторинга цен, изменений в ассортименте и объёмов продаж. Многие онлайн-магазины указывают остаток товара на складе. Если собирать эти данные, через месяц можно будет примерно посчитать средний объём продаж за день. Он не будет идеально точным, но для прогноза этого обычно хватает.

Чтобы данные помогли в работе, нужно уметь не только собирать их, но и делать по ним маркетинговые выводы. Этому студенты учатся на курсе «Интернет-маркетолог». А ещё — настраивать сквозную аналитику, запускать контекстную рекламу, оптимизировать сайты для SEO и многому другому.

Продвигайте бизнес в интернете

Пройдите бесплатную вводную часть курса «Интернет-маркетолог», чтобы попробовать себя в новой роли.

Таргетированная реклама

Парсинг соцсетей поможет собрать список пользователей по заданным признакам. Их можно загрузить прямо в рекламный кабинет вконтакте и запускать креативы на конкретных людей.

Вот что может сделать, например, свадебный салон из Архангельска:
● собрать девушек 20—25 лет из Архангельска со статусом «помолвлена»;
● запустить на них посты о планировании свадьбы;
● делиться полезным контентом с января по апрель;
● в мае запустить на разогретую аудиторию баннеры со скидками на свадебные платья.

По таким критериям в Архангельске нашлись 374 потенциальные невесты — неплохая клиентская база для магазина.

SEO-продвижение и оптимизация

Можно парсить конкурентов и делать самопарсинг. У конкурентов можно смотреть теги title, description и ключевые слова, а у себя проверять, всё ли работает нормально. Парсинг информации с собственного сайта помогает вычислить несуществующие страницы, битые ссылки, дубли, ошибки в описаниях и другие проблемы. Ещё можно сканировать поисковые запросы Яндекса, в том числе графу «Люди ищут», и добавлять ключи на свою площадку.

Классификация парсеров

Сервисы для парсинга группируют по способу доступа, технологии и типу задач.

По способу доступа парсеры могут быть облачными или десктопными. Облачные варианты нужны для парсинга сайта онлайн — вся информация хранится на виртуальной площадке. Десктопные версии хранятся в памяти компьютера.

По типу технологии парсеры условно можно разделить на персонализированные, стандартные и парсеры, которые используют возможности других программ.

Многие компании, которые создают стандартные парсеры, могут написать персонализированную программу для заказчика.

Как сделать парсинг сайта без специальных программ

Парсинг сайтов в Excel и Google Sheets — неплохой способ закрыть мелкие задачи вроде просмотра ассортимента одного конкурента, но с ним тоже придётся повозиться. Предстоит познакомиться с языком запросов к элементам XML-документа — XPath.

Чтобы получить информацию из таблиц и списков, используют функцию importhtml, а для всех остальных форматов данных — importxml.

Если коротко, функция importxml работает так: когда в ячейке пишут =IMPORTXML(“адрес сайта”; “Xpath-запрос блока, где лежит информация, которую мы хотим спарсить”), функция выдаёт нужный текст.

Проверим:

  1. Например, нужно узнать название страницы курса Практикума по интернет-маркетингу. Заходим на страницу, открываем консоль кнопкой F12, находим в коде нужный блок — тот, где лежит информация, которую ищем.

  2. Копируем XPath-запрос: нажимаем правой кнопкой мыши на блок → «Copy» → «Copy XPath».

Текст XPath-запроса нужно будет вставить в формулу

Теперь в формулу подставляем нужные данные: =IMPORTXML(«https://practicum.yandex.ru/internet-marketing-start/»;»/html/head/title»).

Вуаля: функция вернула нам значение этого блока на странице

Парсинг данных с сайта в excel соберёт названия товаров, цены, карточки товаров и другие данные для мониторинга. Нужно будет только загрузить в таблицу все страницы конкурентов, где есть нужная информация.

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

Сервисы для парсинга

1. Парсеры для мониторинга конкурентов

Marketparser
Язык: русский.
Бесплатный период: месяц, проверка 1000 товаров.
Стоимость: от 4500 рублей в месяц. Смотреть тарифы.
Вид доступа: облачный.
Что умеет: формирует отчёты по магазинам и позициям, можно настроить свой отчёт в конструкторе. Соберёт информацию об ассортименте конкурентов, изменении цен и каналов продаж. Можно автоматизировать работу через API.

ALL RIVAL
Язык: русский.
Бесплатный период: без регистрации и ограничений по времени, 2 сайта, 7000 проверок цен в месяц (до 1750 товаров), проверка раз в сутки.
Стоимость: от 5099 рублей в месяц. Смотреть тарифы.
Вид доступа: облачный + расширение для браузера.
Что умеет: сопоставляет ассортименты, отслеживает изменения цен за прошлые полгода, собирает данные магазина — цены, описания и другую информацию.

Priceva
Язык: русский.
Бесплатный период: после регистрации без ограничений по времени до 20 товаров и 6200 проверок, проверка раз в сутки.
Стоимость: от 7000 рублей в месяц. Смотреть тарифы.
Вид доступа: облачный.
Что умеет: анализирует цены, наличие товаров и рекомендуемые розничные цены. Можно настроить автоматический мониторинг.

2. Парсеры для SEO‑оптимизации

Keys.so
Язык: русский.
Бесплатный период: промо-тариф, анализ Яндекс, Google, Дзен, 50 000 записей в отчётах и 10 проектах.
Стоимость: от 4900 рублей в месяц. Смотреть тарифы.
Вид доступа: облачный.
Что умеет: анализирует сайты в органике и платной выдаче, контекстную рекламу, объявления и ключевые фразы. Подходит для конкурентной разведки.

Screaming Frog Seo Spider
Язык: английский.
Бесплатный период: сканирование 500 URL-адресов без ограничений по времени.
Стоимость: 259 долларов в год.
Вид доступа: десктопный.
Что умеет: ищет битые ссылки, редиректы, дубли, анализирует метаданные, анализирует архитектуру веб-страницы. Подходит для самопарсинга.

3. Парсеры для наполнения сайта контентом

Catalogloader
Язык: русский.
Стоимость: наполняют площадки под ключ, стоимость рассчитывает менеджер.
Что умеет: наполняет категории товаров с сайта поставщика или другой страницы, загружает цены из прайсов, ищет описания, фото и характеристики для товаров.

X-Parser Light
Язык: русский.
Стоимость: от 2870 рублей в месяц.
Вид доступа: десктопный.
Что умеет: парсит контент по списку ключевых слов или ссылок, помогает наполнять сайты, может автоматизировать создание ТЗ для SEO-статей.

Datacol
Язык: русский.
Стоимость: от 9000 рублей, наполняют сайты под ключ.
Что умеет: добавляет товары и цены с площадки поставщика и обновляет их.

4. Парсеры для сбора данных об аудитории

TargetHunter
Язык: русский.
Стоимость: от 18 рублей в день, если оплатить сразу за год. Смотреть тарифы.
Вид доступа: облачный.
Что умеет: объединяет 150 инструментов поиска аудитории вконтакте: собирает пользователей по ключевым словам и фразам, геолокации, месту работы и учёбы, возрасту, музыкальным предпочтениям, лайкам и активности в комментариях.

Pepper.ninja
Язык: русский.
Бесплатный период: 3 дня полного доступа.
Стоимость: от 490 рублей в месяц.
Вид доступа: облачный.
Что умеет: собирает аудиторию по открытым данным страницы, по активности в группе, ищет похожую аудиторию по ключевому слову или действию, парсит Live-трансляции, собирает аудиторию по музыкальным вкусам.

Церебро Таргет
Язык: русский.
Стоимость: от 1225 рублей в месяц.
Вид доступа: облачный.
Что умеет: предлагает более 100 способов собирать аудитории: по сообществам, характеристикам, комментариям, активности. Собирает аудиторию из групп и фотоальбомов конкурентов, ищет интересные для аудитории посты.

5. Многофункциональные парсеры

A-parser
Язык: русский.
Бесплатный период: демо-версия после регистрации.
Стоимость: от 179 долларов в год. Смотреть тарифы.
Вид доступа: десктопный.
Что умеет: парсит страницы для SEO-оптимизации, рекламные блоки, аудитории из соцсетей и открытых групп в телеграме, мониторит цены, наполняет сайты и карточки товаров.

Диггернаут
Язык: русский.
Бесплатный период: 1 проект и 3 диггера — робота, которые ищут информацию.
Стоимость: от от 700 рублей в месяц. Смотреть тарифы.
Вид доступа: десктопный.
Что умеет: мониторит конкурентов, парсит новостные заголовки, статистические исследования, открытые данные госструктур и других организаций, мнения в соцсетях и другие данные.

Вот примеры полностью бесплатных решений:
Xenu’s Link Sleuth — программа для SEO-оптимизации;
Каталог бесплатных парсеров Диггернаут — десятки парсеров для узких задач вроде парсинга маркетплейса CDEK;
Три расширения браузера Chrome — для тех, кто умеет работать с XPath.

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

Как выбрать парсер

Шесть вопросов помогут выбрать парсер для решения задачи:

1. Типовая задача или сложный, нестандартный запрос?
Если задача типовая, можно выбирать стандартное решение на рынке. Если задача сложная и нешаблонная, парсер лучше делать под ключ, то есть программировать с нуля. Этим занимаются многие крупные парсеры, в том числе из нашего списка. Например, персонализированное решение смогут сделать A-parser, Диггернаут и ALL RIVAL.

Сложность запроса состоит из технической трудности и комплексности задачи:

● Технически сложные задачи — это любые ресурсоёмкие запросы, где важна пропускная способность сервера или ПО для парсинга. Например, если нужно парсить многостраничный и нагруженный сайт вроде «Леруа Мерлен».

● Комплексная задача — это цепь из нескольких звеньев: собрать данные, структурировать и проанализировать их. Если в итоге нужна не таблица в Excel, а хорошо визуализированная информация с выводами — это тоже сложный процесс.

Шаблонность или нестандартность решения можно определить по объекту парсинга. Если нужно сканировать что-то массовое и типовое — соцсети, сайты на Тильде, маркетплейсы, сайты-конструкторы, то это стандартный запрос. Если речь о крупных ресурсах, то их программируют не по шаблону, и парсер нужно перенастраивать. Чем крупнее проект, тем сложнее парсинг.

2. Парсить самостоятельно или отдать на аутсорс?
Если хочется сразу получить результат, не разбираясь в тонкостях, можно нанять фрилансера на FL.ru, profi.ru или другом ресурсе. Если есть время на освоение одного из парсеров на рынке, можно парсить самостоятельно.

3. Что делать с помощью парсера?
Когда задача ясна, можно отметать парсеры, у которых нет нужных функций. Например, если нужно собрать аудиторию из соцсетей, парсеры для SEO-оптимизации вряд ли подойдут.

4. Какой бюджет на парсинг?
Без бюджета долго и много парсить не получится. Можно, например, оптимизировать площадку на 100 URL или промониторить одного конкурента — с этим справятся демо-версии. Более масштабные проекты нужно включать в список расходов.

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

6. Можно ли работать с интерфейсом на английском?
Если да, то можно рассматривать зарубежные парсеры.

Ещё есть три важных критерия для выбора парсера:

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

Ресурсоёмкость. Это мощность парсера, которая показывает, какой запрос он может потянуть. Она зависит от тарифа: чем дороже вариант, тем больше мощность. Можно выбрать тариф по бюджету через техподдержку и узнать, подходит ли ресурсоёмкость для задач. Программисты честно скажут, хватит у них ресурсов или нет.

Отказоустойчивость. Эта характеристика показывает, как быстро сервис адаптируется в связи с обновлениями соцсетей и конструкторов. Бывает, что обновление вышло месяц назад, а парсер ещё не научился собирать информацию по-новому и выдаёт ошибку — такого лучше избегать. Узнать, какая отказоустойчивость у парсера, можно по отзывам.

Совет эксперта

Владислав Бочаров

Тем, кто выбирает парсер впервые, я советую ориентироваться на «старичков», которые в деле хотя бы три года, уже проверили технологии и наладили процесс. Пробовать новые варианты можно, когда опыта станет больше и будет понятно, каких функций не хватает в старом парсере.

Возраст компании можно посмотреть по отзывам либо через дату регистрации юридического лица — поможет сервис rusprofile.ru. Стоит обратить внимание на графу ОКВЭД — там должен стоять профильный вид деятельности, связанный с IT.

Профессия интернет-маркетолога: что нужно делать и сколько можно зарабатывать

Конкурентный анализ: посмотреть на других, чтобы показать себя

В прошлом видео мы разбирали, как делать парсинг данных о товарах с сайта интернет магазина через Xpath. В этом видео мы разберем, как парсить данные с помощью CSS селекторов в Excel таблицы в программе для парсинга «Netpeak Spider».

CSS-селектор – это альтернативный метод парсинга данных. С помощью «Netpeak Spider» мы можем извлечь практически любую информацию, которая содержится в HTML-коде страницы.

Скачать Netpeak Spider

Есть сайт поставщика мебели. Мы хотим спарсить/извлечь из этого сайта информацию по определенным товарам. В данном случае это кровати. Сайт большой, потому что на нем представлены не только кровати, но и мягкая мебель, матрасы, столы, стулья и так далее.

Для того чтобы сэкономить время и ресурсы, нет смысла парсить несколько десятков тысяч страниц со всеми товарами. Нас не интересует информация обо всех товарах. Мы хотим взять информацию только одного из разделов и загрузить ее себе на сайт. Потому что у этого поставщика нет выгрузки в Exel-таблице, нет товарного фида, нет фида в формате YML. У них есть только информация, загруженная на сайт.

Заходим в карточку товара и смотрим, какие данные мы хотим отсюда извлечь:

  • данные о названии;
  • цены товара;
  • габариты спального места;
  • доступные цвета и материалы;
  • картинки;
  • технические характеристики;
  • описание товара.

Популярный сервис

Netpeak Spider(Нетпик спайдер)

В настройках парсинга «Netpeak Spider» необходимо указать те правила, по которым следует парсить данные, после чего запустить «Netpeak Spider». Он автоматически соберет нужные данные, которые можно будет выгрузить, например, в Excel-таблицу. Далее можно дополнить их, отредактировать, загрузить на свой сайт, в итоге потратив 10 минут. Так можно получить всю информацию о товарах с готовой структурой, которая составит новый полноценный раздел по кроватям или дополнит уже существующий раздел.

Настройки парсинга данных в программе «Netpeak Spider»

Открываем «Netpeak Spider», заходим в меню «Настройки» – «Парсинг».

Не всегда есть возможность разбираться во всех технических аспектах парсинга, либо просто нет на это времени. Поэтому вы можете заказать парсинг любого сайта и любых данных. Мы  сделаем всю настройку и предоставим вам уже готовые данные в Exel-таблице. При необходимости импортируем их на ваш сайт, или внесем какие-либо изменения на вашем сайте. Переходите по ссылке в описания и на странице контактов сайта AZOOGLE.RU опишите, что требуется сделать. Далее обсудим, как мы сможем вам помочь.

Для данного проекта я уже накидал некоторые настройки парсинга данных, поговорим о них более подробно.

Извлечение названия товара

Первое, что нам нужно извлечь – это название товара:

  • Заходим в карточку товара в браузере «Chrome» и нажимаем F12 — открывается консоль разработчика.
  • Нажимаем на стрелку и подводим ее к тем элементам, данные которых нам нужно спарсить. В данном случае к названию товара.
  • Информация о названии товара находится внутри тэга H1. Соответственно в настройках правил по извлечению данных по этому элементу необходимо прописать название тэга – это H1.

Парсинг данных с сайтов в Excel через CSS селекторы в программе для парсинга Netpeak Spider

Настройки парсинга названия товара

Настройки парсинга Netpeak Spider

Настройки парсинга Netpeak Spider

Парсинг цены товара

Чтобы спарсить информацию о цене, нам необходимо узнать id тега, внутри которого она содержится:

  • Текущая цена товара(цена по распродаже) содержится внутри тэга с ID «product_price».
  • Синтаксис правил парсинга через класс или идентификатор элемента(«class» и «id») немного различаются. Если вы желаете найти элемент по его ID, то в настройках «Netpeak Spider» нужно поставить #product_price (решетка ID тега). В данном случае он будет извлекать весь текст, который содержится внутри тэга с ID «product_price».
  • Выбираем параметр парсинга «Внутренний текст».

Парсинг цены акционной товара

Парсинг цены акционной товара

Обращаем внимание на старую цену. В данном примере, у нас есть цена по распродаже и старая цена, которая была до распродажи:

  • Старая цена находится внутри тега с ID «product_old-price».
  • Копируем id: два раза щелкаем мышкой на название ID, нажимаем Ctrl+C (копировать) и Ctrl+V (вставить) в нужное поле.

Парсинг старой цены товара

Парсинг старой цены товара

В итоге получаем два правила:

  1. Текущую цену по распродаже извлекать из элемента с ID «#product_price».
  2. Старую цену извлекать из элемента ID «#product_old-price».

Правила парсинга цен товара

Правила парсинга цен товара

Парсинг картинок

У каждого товара может быть разное количество картинок. Соответственно, мы хотим извлечь все эти картинки. Ссылка на картинку содержится внутри элемента <a href=»URL»>…</a>.

Парсинг изображений

Парсинг изображений

В данном случае нам нужно спарсить атрибут «href» для элемента с классом «detaill-images-group»:

  • Заходим в настройки «Netpeak Spider» и в свойствах поля для картинки выбираем CSS- селектор.
  • Указываем элемент с классом «.detaill-images-group».
  • Выбираем параметр «Значение атрибута».
  • В качестве атрибута указываем «href»

Значение атрибута href

Значение атрибута href

В итоге будет извлекаться относительная ссылка на изображение …upload/resize/cache/…name.jpg Потом в таблице мы ее просто дополним полным названием сайта, пропишем полный url: krovat.ru/upload/resid и т.д. – вся основная текстовая информация. При импорте мы сможем скачать по этой ссылке нужную картинку.

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

Правила парсинга картинок

Правила парсинга картинок

Извлечение описания товара

При парсинге описания товара, мы смотрим, что на сайте есть несколько вкладок:

  • Характеристики;
  • Описание;
  • Отзывы.

В данном случае нам нужно извлечь информацию о товаре с вкладки «Описание товара», которое содержится внутри тэга с классом «_description». Но, так как этот класс не уникальный на странице, а мы хотим спарсить описание именно этого товара, а не какой-то другой «description», описание которого также содержится на этой странице. Нам нужно прописать уточнение — спарсить текст, который содержится внутри тэга с классом «.page_description.active», который находится внутри тэга «toggle_block_pages».

Извлечение описания товара

Извлечение описания товара

В «Netpeak Spider» мы прописываем следующее правило в поле CSS-селектор: «.toggle_block_pages ._ description»

Таким образом, парсер найдет элемент, в котором все вкладки: характеристики, описание, отзывы для текущего товара. Потом внутри этого блока найдет элемент с классом _description (вкладка, которая отвечает за описание товара).

С помощью такой конструкции вы можете задавать конкретную область, из которой нужно извлекать данные. Часто бывает, что цена с тэгом «Price» повторяется несколько раз на странице, то есть тэг не уникальный. Поэтому если вы запишете только одно правило: «Найти информацию о цене внутри элементов с тэгом прайс», то «Netpeak Spider» извлечет несколько цен, при том, что вам нужна только одна. С помощью этого правила вы можете конкретизировать и выбирать именно те области страницы, из которых необходимо извлекать данные.

Правило парсинга описания

Правило парсинга описания

Парсинг дополнительных параметров

Габариты спального места

Например, мы хотим спарсить информацию о размере спального места. Здесь есть один нюанс. В зависимости от размера спального места, цена будет меняться. Так, при размере 80*90 см — цена будет составлять 11 234 рубля, а при размере 200*200 см — цена уже будет 21 503 рубля.

Нам нужно спарсить информацию именно о том товаре, который стоил 11 234 рубля. Поэтому мы будем парсить информацию, в зависимости от размера спального места:

  • Смотрим, внутри которого элемента содержится информация о спальном месте.
  • Все доступные опции по размерам находятся внутри тега с id=«product size». Далее идет перечисление этих опций (размеров спального места). В данном случае мы хотим спарсить информацию о цене только для первого элемента.
  • В правилах прописываем «#product_size option:first-child». Иными словами, даем парсеру инструкцию: найти тег с id «product size», потом внутри него найди тег «option», и возьми только первую опцию/первый элемент.

Извлечение габаритов товара

Извлечение габаритов товара

На сайте w3schools можно подробнее ознакомиться с тем, как можно выбирать и гибко настраивать CSS селекторы. Здесь вы можете более детально ознакомится с вариантами выбора тех или иных элементов, ориентируясь на CSS Selectors (можно выбрать первый элемент, можно последний, посещаемые ссылки, первую букву, первую строку и т.д.).

Правило парсинга габаритов

Правило парсинга габаритов

Мы воспользуемся одним из правил «:first-child» — правило выбора первого дочернего элемента.

Доступные цвета и материалы

Если мы хотим спарсить информацию обо всех доступных цветах, то нужно посмотреть, внутри каких элементов содержится эта информация. Нужные нам данные содержатся внутри элемента с id= «product colors», и далее внутри тега «label» содержатся картинки и названия цветов.

Извлекать картинку не имеет смысла, потому что по ней сложно сказать название цвета. Проще извлечь текстовое название цвета, а уже на своем сайте загрузить соответствующие картинки:

  • В правилах «Netpeak Spider» прописываем «#product_colors label»;
  • В графе извлечение данных выбираем «Значение атрибутов»;
  • Указываем атрибута «title»

Таким образом, мы задаем правило для извлечения названия цвета, по которому парсер найдет элемент с id «product colors», внутри тега «label», и извлечет значение атрибута.  Для извлечения названия материала, нужно повторить все те же действия.

Извлечение цвета товара

Извлечение цвета товара

Правило парсинга цвета товара

Правило парсинга цвета товара

Извлечение технических характеристик

Далее нас интересуют информация по техническим характеристикам, которые содержаться в таблице. В этой таблице у нас есть:

  • название характеристики (гарантия, стиль, основание в комплекте и т.д.);
  • значение этой характеристики (18 месяцев, современный, есть и т.д.).

В правилах «Netpeak Spider» сначала извлекаем название параметра «#product_properties.name» (тег с id=«product properties» и class=«name»). Далее нам нужны значения этих параметров. В правилах пописываем «#product properties.value» (найти элемент с  id=«product properties» внутри class «value»).

Таким образом, в таблице первой характеристике будет соответствовать первое значение из столбца «value».  Первому значению «param» — «name» будет соответствовать первое значение «param» — «value». Второму значению «param» — «name» будет соответствовать второе значение «param» — «value» и так далее. Он спарсит все эти значения по порядку, и мы сможем их сопоставить при импорте.

Когда все правила прописаны, нажимаем кнопку ОК.

Извлечение технических характеристик

Извлечение технических характеристик

Правило парсинга технических характеристик

Правило парсинга технических характеристик

Запуск парсинга страниц сайта

В настройках «Netpeak Spider» на вкладке «Параметры» снимаем галочки со всех параметров. И отмечаем только «Парсинг». Информация по сканированию и индексации, ссылкам и другим запросам нас не интересует. Нас интересует информация по извлечению только тех данных, которые мы отметили в настройках парсинга.

Мы можем парсить сайт целиком, т.е. запустить «Netpeak Spider», что бы он собрал информацию обо всех страницах, которые есть на сайте. Однако, сайт большой (по данным Яндекса 74000 страниц), и парсинг всех 74000 страниц займет огромное количество времени и ресурсов. Поэтому нам нужно спарсить данные только о товарах из определенного раздела:

  • Собираем информацию о тех URL товаров, которые нас интересуют в обычный текстовый документ.
  • В «Netpeak Spider» во вкладке «Список URL» выбираем «Ввести вручную» и вставляем список URL.
  • Нажимаем «Добавить» и запускаем сканирование.

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

  • Название;
  • Цена;
  • Картинки;
  • Описание;
  • размер спального места;
  • габариты;
  • доступные цвета;
  • информация о материалах;
  • технические характеристики и их значения.

Теперь можно сделать экспорт в Excel, отредактировать всю эту информацию и импортировать к себе на сайт.

Таким образом, создав правило для парсинга сайта один раз, вы можете пользоваться им сколько угодно и в автоматическом режиме собирать эти данные. Это особенно актуально для больших сайтов. Если нужно собрать информацию обо всех товарах, доступных в разделе для Москвы или любого другого города, то можно запустить «Netpeak Spider» и он в течение 10 минут соберет информацию о тысячах товаров.

Если у вас возникли вопросы по работе с парсингом, то вы можете задать их в комментариях. Я постараюсь максимально подробно на них ответить.  Если у вас нет времени разбираться с какими-то техническими моментами, и нужен готовый результат, то оставьте заявку на странице контактов. Мы обсудим, как я смогу Вам помочь.

Вы можете скачать Netpeak Spider и бесплатно пользоваться полноценной версией программы течении 7 дней здесь, если вы решите и дальше(после завершения 7 дней пробного периода) пользоваться Netpeak Spider то можете сэкономить 10% воспользовавшись промокодом 14ca4308.

Вход

Парсинг (web scraping) — это автоматизированный сбор открытой информации в интернете по заданным условиям. Парсить можно данные с сайтов, поисковой выдачи, форумов и социальных сетей, порталов и агрегаторов. В этой статье разбираемся с парсерами сайтов.

Часто требуется получить и проанализировать большой массив технической и коммерческой информации, размещенной на своих проектах или сайтах конкурентов. Для сбора таких данных незаменимы парсеры — программы или сервисы, которые «вытаскивают» нужную информацию и представляют ее в структурированном виде.

Парсинг — это законно?

Сбор открытой информации в интернете не запрещен законодательством РФ. Более того, в п.4 статьи 29 Конституции закреплено «право свободно искать, получать, передавать, производить и распространять информацию любым законным способом». Парсинг данных часто сравнивают с фотографированием ценников в магазинах: если информация есть в открытом доступе, не защищена авторским правом или другими ограничениями, значит, ее можно копировать и распространять.

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

Кому и зачем нужны парсеры сайтов

Классификация парсеров

Парсеры сайтов по способу доступа к интерфейсу

Облачные парсеры

Программы-парсеры

Парсеры сайтов в зависимости от используемой технологии

Парсеры на основе Python и PHP

Парсеры-расширения для браузеров

Парсеры сайтов на основе Excel

Парсинг при помощи Google Таблиц

Парсеры сайтов в зависимости от решаемых задач

Парсеры для организаторов совместных покупок (СП)

Сервисы мониторинга конкурентов

Сбор данных и автонаполнение контентом

Многофункциональные парсеры

SEO-парсеры

Screaming Frog SEO Spider

Netpeak Spider

ComparseR

SiteAnalyzer от Majento

Анализ сайта от SE Ranking

A-Parser

Анализ сайта от PR-CY

Xenu’s Link Sleuth

Парсер метатегов и заголовков PromoPult

Как выбрать парсер

Кому и зачем нужны парсеры сайтов

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

Парсеры могут выполнять следующие задачи:

  • Сбор цен и ассортимента. Это полезно для интернет-магазинов. При помощи парсера можно мониторить цены конкурентов и наполнять каталог на своем ресурсе в автоматическом режиме.
  • Парсинг метаданных сайта (title, description, заголовков H1) пригодится SEO-специалистам.
  • Анализ технической оптимизации ресурса (битые ссылки, ошибки 404, неработающие редиректы и др.) потребуется сеошникам и вебмастерам.
  • Программы для скачивания сайтов целиком или парсеры контента (текстов, картинок, ссылок) находятся в «серой» зоне. С их помощью недобросовестные вебмастера клонируют сайты для последующей продажи с них ссылок. Сюда же отнесем парсинг данных с агрегаторов и картографических сервисов: Авито, Яндекс.Карт, 2gis и других. Собранные базы используются для спамных обзвонов и рассылок.

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

  1. При наличии программистов в штате проще всего поставить им задачу сделать парсер под нужные цели. Так вы получите гибкие настройки и оперативную техподдержку. Самые популярные языки для создания парсеров — PHP и Python.
  2. Воспользоваться бесплатным или платным облачным сервисом.
  3. Установить подходящую по функционалу программу.
  4. Обратиться в компанию, которая разработает инструмент под ваши нужды (ожидаемо самый дорогой вариант).

С первым и последним вариантом все понятно. Но выбор из готовых решений может занять немало времени. Мы упростили эту задачу и сделали обзор инструментов.

Классификация парсеров

Парсеры можно классифицировать по различным признакам.

  1. По способу доступа к интерфейсу: облачные решения и программы, которые требуют установки на компьютер.
  2. По технологии: парсеры на основе языков программирования (Python, PHP), расширения для браузеров, надстройки в Excel, формулы в Google таблицах.
  3. По назначению: мониторинг конкурентов, сбор данных в определенной нише рынка, парсинг товаров и цен для наполнения каталога интернет-магазина, парсеры данных соцсетей (сообществ и пользователей), проверка оптимизации своего ресурса.

Разберем парсеры по разным признакам, подробнее остановимся на парсерах по назначению.

Парсеры сайтов по способу доступа к интерфейсу

Облачные парсеры

Облачные сервисы не требуют установки на ПК. Все данные хранятся на серверах разработчиков, вы скачиваете только результат парсинга. Доступ к программному обеспечению осуществляется через веб-интерфейс или по API.

Примеры облачных парсеров с англоязычным интерфейсом:

  • http://import.io/,
  • Mozenda (есть также ПО для установки на компьютер),
  • Octoparce,
  • ParseHub.

Примеры облачных парсеров с русскоязычным интерфейсом:

  • Xmldatafeed,
  • Диггернаут,
  • Catalogloader.

У всех сервисов есть бесплатная версия, которая ограничена или периодом использования, или количеством страниц для сканирования.

Программы-парсеры

ПO для парсинга устанавливается на компьютер. В подавляющем большинстве случаев такие парсеры совместимы с ОС Windows. Обладателям mac OS можно запускать их с виртуальных машин. Некоторые программы могут работать со съемных носителей.

Примеры парсеров-программ:

  • ParserOK,
  • Datacol,
  • SEO-парсеры — Screaming Frog, ComparseR, Netpeak Spider и другие.

Парсеры сайтов в зависимости от используемой технологии

Парсеры на основе Python и PHP

Такие парсеры создают программисты. Без специальных знаний сделать парсер самостоятельно не получится. На сегодня самый популярный язык для создания таких программ Python. Разработчикам, которые им владеют, могут быть полезны:

  • библиотека Beautiful Soup;
  • фреймворки с открытым исходным кодом Scrapy, Grab и другие.

Заказывать разработку парсера с нуля стоит только для нестандартных задач. Для большинства целей можно подобрать готовые решения.

Парсеры-расширения для браузеров

Парсить данные с сайтов могут бесплатные расширения для браузеров. Они извлекают данные из html-кода страниц при помощи языка запросов Xpath и выгружают их в удобные для дальнейшей работы форматы —  XLSX, CSV, XML, JSON, Google Таблицы и другие. Так можно собрать цены, описания товаров, новости, отзывы и другие типы данных.

Примеры расширений для Chrome: Parsers, Scraper, Data Scraper, kimono.

Парсеры сайтов на основе Excel

В таких программах парсинг с последующей выгрузкой данных в форматы XLS* и CSV реализован при помощи макросов — специальных команд для автоматизации действий в MS Excel. Пример такой программы — ParserOK. Бесплатная пробная версия ограничена периодом в 10 дней.

Парсинг при помощи Google Таблиц

В Google Таблицах парсить данные можно при помощи двух функций — importxml и importhtml.

  • Функция IMPORTXML импортирует данные из источников формата XML, HTML, CSV, TSV,  RSS, ATOM XML в ячейки таблицы при помощи запросов Xpath. Синтаксис функции:
  
IMPORTXML("https://site.com/catalog"; "//a/@href")
IMPORTXML(A2; B2)
  

Расшифруем: в первой строке содержится заключенный в кавычки url (обязательно с указанием протокола) и запрос Xpath.

Знание языка запросов Xpath для использования функции не обязательно, можно воспользоваться опцией браузера «копировать Xpath»:

Как парсить сайт: 20+ инструментов на все случаи жизни

Вторая строка указывает ячейки, куда будут импортированы данные.

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

  • У IMPORTHTML более узкий функционал — она импортирует данные из таблиц и списков, размещенных на странице сайта. Синтаксис функции:
  
IMPORTHTML("https://https://site.com/catalog/sweets"; "table"; 4)
IMPORTHTML(A2; B2; C2)
  

Расшифруем: в первой строке, как и в предыдущем случае, содержится заключенный в кавычки URL (обязательно с указанием протокола), затем параметр “table”, если хотите получить данные из таблицы, или “list”, если из списка. Числовое значение (индекс) означает порядковый номер таблицы или списка в html-коде страницы.

Парсеры сайтов в зависимости от решаемых задач

Чтобы не ошибиться с выбором ПО или облачного сервиса для парсинга, нужно понимать спектр задач, которые они решают. Мы разделили парсеры по сферам применения.

Парсеры для организаторов совместных покупок (СП)

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

У таких парсеров простой, интуитивно понятный интерфейс панели управления, в котором можно указать необходимые настройки — страницы для парсинга, расписание, группы в соцсетях для выгрузки и другие.

Примеры сервисов:

  • SPparser.ru,
  • Турбо.Парсер,
  • PARSER.PLUS,
  • Q-Parser,
  • Облачный парсер.

Что умеют парсеры для СП:

  • парсить товары из интернет-магазинов и групп в соцсетях;
  • выгружать товары с фото и ценами в альбомы соцсетей — Одноклассники и ВКонтакте;
  • выгружать данные в формате CSV и XLS(X);
  • обновлять информацию в автоматическом режиме — подгружать новые товары и удалять те, которых нет в наличии.

Сервисы мониторинга конкурентов

Эта группа парсеров позволяет ценам в интернет-магазине оставаться на уровне рынка. Сервисы мониторят заданные ресурсы, сопоставляют товары и цены на них с вашим каталогом и предоставляет возможность скорректировать цену на более привлекательную. Такие парсеры мониторят сайты конкурентов, обновляемые прайсы в форматах XLS(X), CSV и других, маркетплейсы (Яндекс.Маркет, e-katalog и другие прайс-агрегаторы).

Примеры парсеров цен конкурентов:

  • Marketparser,
  • Xmldatafeed,
  • ALL RIVAL.

Сбор данных и автонаполнение контентом

Такие парсеры облегчают работу контент-менеджерам интернет-магазинов тем, что заменяют ручной мониторинг сайтов поставщиков, сравнение и изменение ассортимента, описаний, цен. Парсер собирает данные с сайтов-доноров (названия и описания товаров, цены, изображения и др.), выгружает их в файл или сразу на сайт. В настройках есть возможность сделать наценку, объединить данные с нескольких сайтов, запускать сбор данных в автоматическом режиме по расписанию или вручную.

Примеры парсеров для наполнения интернет-магазинов:

  • Catalogloader,
  • Xmldatafeed,
  • Диггернаут

Многофункциональные парсеры

Такие инструменты способны собирать данные под разные задачи — наполнение интернет-магазинов, мониторинг цен конкурентов, парсинг агрегаторов данных, сбор SEO-параметров и прочее. К этой группе относятся все браузерные расширения с функцией парсинга.

Другие примеры многофункциональных парсеров:

  • Import.io, Mozenda — комплексы инструментов для извлечения и визуализации данных. Подходят для среднего и крупного бизнеса с большим объемом задач.
  • Octoparce — инструмент для мониторинга цен и сбора данных с любого сайта. Данные выгружаются в форматы CSV или Excel. Есть доступ по API.
  • ParseHub — облачный парсер для сбора цен, контактов, маркетинговых данных, скачивания файлов, мониторинга конкурентов. Работает со всеми типами сайтов, в том числе, агрегаторами и маркетплейсами. Данные доступны в форматах CSV, Excel, Google Sheets, предоставляется доступ по API.
  • Datacol. Извлекает данные с сайтов, агрегаторов, соцсетей, Яндекс.Карт и других источников. Базовые функции можно расширить при помощи плагинов. Программа платная, но есть демо-версия для тестирования.
  • ParserOK. С помощью программы можно парсить данные из интернет-магазинов, контактов, загружать файлы различных форматов в облачное хранилище.

SEO-парсеры

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

Задачи, которые могут выполнять SEO-парсеры:

  • указывать на корректность настройки главного зеркала;
  • анализировать содержание robots.txt и sitemap.xml;
  • указывать наличие, длину и содержание метатегов title и description, количество и содержание заголовков h1 — h6;
  • определять коды ответа страниц;
  • генерировать XML-карту сайта;
  • определять уровень вложенности страниц и визуализировать структуру сайта;
  • указывать наличие/отсутствие атрибутов alt у картинок;
  • определять битые ссылки;
  • определять наличие атрибута rel=»canonical»;
  • предоставлять данные по внутренней перелинковке и внешней ссылочной массе;
  • отображать сведения о технической оптимизации: скорости загрузки, валидности кода, оптимизации под мобильные устройства и др.

Кратко охарактеризуем функционал популярных SEO-парсеров:

  • Screaming Frog SEO Spider
  • Netpeak Spider
  • ComparseR
  • SiteAnalyzer от Majento
  • SE Ranking
  • A-Parser
  • PR-CY
  • Xenu’s Link Sleuth

Screaming Frog SEO Spider

Пожалуй, самый популярный SEO-анализатор от британских разработчиков. С его помощью можно быстро и наглядно выяснить:

  • содержимое, код ответа, статус индексации каждой страницы;
  • длину и содержимое title и description;
  • наличие и содержимое заголовков h1 и h2;
  • информацию об изображениях на сайте — формат, размер, статус индексации;
  • информацию по настройке канонических ссылок и пагинации;
  • другие важные данные.

Интерфейс бесплатной версии Screaming FrogИнтерфейс бесплатной версии Screaming Frog

Бесплатная версия ограничена 500-ми url. В платной (лицензию можно купить на год) количество страниц для парсинга не ограничено, и она имеет гораздо больше возможностей. Среди них — парсинг цен, названий и описаний товаров с любого сайта. Как это сделать, мы подробно описали в гайде.

Netpeak Spider

Популярный инструмент для комплексного анализа сайта. Проверяет ресурс на ошибки внутренней оптимизации, анализирует важные для SEO параметры: битые ссылки, дубли страниц и метатегов, коды ответа, редиректы и другие. Можно импортировать данные из Google Search Console и систем веб-аналитики. Для агентств есть возможность сформировать брендированный отчет.

Интерфейс Netpeak SpiderИнтерфейс Netpeak Spider

Инструмент платный, базовые функции доступны доступны во всех тарифах. Бесплатный пробный период — 14 дней.

ComparseR

Это программа, которая анализирует ресурс на предмет технических ошибок. Особенность парсера в том, что он также показывает все страницы сайта в индексе Яндекс и Google. Эта функция полезна, чтобы выяснить, какие url не попали в индекс, а какие находятся в поиске (и те ли это страницы, которые нужны оптимизатору).

Интерфейс демо-версии ComparseR 1.1.2.Интерфейс демо-версии ComparseR 1.1.2.

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

SiteAnalyzer от Majento

Бесплатная программа для сканирования всех страниц, скриптов, документов и изображений сайта. Используется для проведения технического SEO-аудита. Требует установки на ПК (ОС Windows), но может работать и со съемного носителя. «Вытаскивает» следующие данные: коды ответа сервера, наличие и содержимое метатегов и заголовков, определение атрибута rel=»canonical», внешние и внутренние ссылки для каждой страницы, дубли страниц и другие.

Интерфейс SiteAnalyzer 2.0.Интерфейс SiteAnalyzer 2.0.

Отчет можно экспортировать в форматы CSV, XLS и PDF.

Анализ сайта от SE Ranking

Инструмент анализирует ключевые параметры оптимизации сайта: наличие robots.txt и sitemap.xml, настройка главного зеркала, дубли страниц, коды ответа, метатеги и заголовки, технические ошибки, скорость загрузки, внутренние ссылки. По итогам сканирования сайту выставляется оценка по 100-балльной шкале. Есть опция создания XML-карты сайта. Полезная возможность для агентств — формирование брендированного отчета, который можно скачать в удобном формате или отправить на email. Отчеты запускаются вручную или по расписанию.

Дашборд со сводными данными анализа сайта от SE RankingДашборд со сводными данными анализа сайта от SE Ranking

Возможны две модели оплаты — за проверки позиций и ежемесячная подписка. Бесплатный пробный период — 2 недели.

A-Parser

Этот сервис объединяет более 70 парсеров под разные цели: парсинг выдачи популярных поисковых систем, ключевых слов, приложений, социальных сетей, Яндекс и Google карт, крупнейших интернет-магазинов, контента и другие. Кроме использования готовых инструментов есть возможности для программирования собственных парсеров на основе регулярных выражений, XPath, JavaScript. Разработчики также предоставляют доступ по API.

Интерфейс демо-версии A-Parser: парсинг результатов Яндекс.Маркета по названию модели телевизора.Интерфейс демо-версии A-Parser: парсинг результатов Яндекс.Маркета по названию модели телевизора.

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

Анализ сайта от PR-CY

Онлайн-инструмент для анализа сайтов более чем по 70 пунктам. Указывает на ошибки оптимизации, предлагает варианты их решения, формирует SEO-чеклист и рекомендации по улучшению ресурса. По итогам сканирования сайту выставляется оценка в процентах.

Сводные данные сканирования сайта в интерфейсе PR-CYСводные данные сканирования сайта в интерфейсе PR-CY

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

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

Xenu’s Link Sleuth

Бесплатная программа для парсинга всех url сайта: внешних и внутренних ссылок, ссылок на картинки и скрипты и т.д. Можно использовать для разных задач, в том числе, для поиска битых ссылок на сайте. Программу нужно скачать и установить на компьютер (ОС Windows).

По каждой ссылке будет показан ее статус, тип (например, text/plain или text/html), размер, анкор и ошибка.

Интерфейс программы Xenu’s Link SleuthИнтерфейс программы Xenu’s Link Sleuth

Парсер метатегов и заголовков PromoPult

Это инструмент, который парсит метатеги title, description, keywords и заголовки h1-h6. Можно воспользоваться им для анализа своего проекта или сайтов-конкурентов. В первом случае легко выявить незаполненные, неинформативные, слишком длинные или короткие метатеги, дубли метаданных, во втором — выяснить, какие ключевые запросы используют конкуренты, определить структуру и логику формирования метатегов.

Как парсить сайт: 20+ инструментов на все случаи жизни

Добавить список url можно вручную, XLSX-файлом или ссылкой на XML-карту сайта. Отчеты выгружаются в форматах HTML и XLSX. Первые 500 запросов — бесплатно. Все нюансы работы с инструментом мы описали в гайде.

Как выбрать парсер

  1. Определитесь с целью парсинга: мониторинг конкурентов, наполнение каталога, проверка SEO-параметров, совмещение нескольких задач.
  2. Выясните, какие данные в каком объеме и в каком виде вам нужно получить на выходе.
  3. Подумайте о том, насколько регулярно вам нужно собирать и обрабатывать данные: разово, ежемесячно, ежедневно?
  4. Если у вас большой ресурс со сложным функционалом, имеет смысл заказать создание парсера с гибкими настройками под ваши цели. Для стандартных проектов на рынке достаточно готовых решений.
  5. Выберите несколько инструментов и изучите отзывы. Особое внимание обратите на качество технической поддержки.
  6. Соотнесите уровень подготовки (свой или ответственного за работу с данными лица) со сложностью инструмента.
  7. На основе перечисленных выше параметров выберите подходящий инструмент и тариф. Возможно, под ваши задачи хватит бесплатного функционала или пробного периода.

Понравилась статья? Поделить с друзьями:
  • Спарклайны в сводной таблице excel
  • Спарклайны в excel что это такое
  • Спарклайны в excel формула
  • Спарклайны в excel задание
  • Спарклайны в excel для чего