Настройка парсера интернет магазина (сайта) для получения каталога товаров с ценами, описаниями и фото

Как работает парсер интернет магазинов E-Trade Jumper

Все интернет-магазины создаются при помощи языка HTML, это стандартизированный язык разметки страниц во Всемирной паутине, поэтому на всех сайтах используются одинаковые элементы для различных блоков, парсер E-Trade Jumper использует этот стандарт для получения данных с сайта интернет-магазина.

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

  • Тег div. Универсальный блочный элемент, который позволяет выделить на сайте раздел с визуальным содержимым. Это может быть список товаров.
  • Тег a. Отображает ссылку на страницу. Это могут быть ссылки на товары в определённой категории.
  • Тег h1. Отображает заголовок первого уровня (так же есть h2, h3, h4, h5, h6). Это может быть наименование товара.
  • Тег p. Отображает текстовый абзац. Это может быть описание товара.
  • Тег table. Отображает таблицу. Это может быть таблица атрибутов товара.
  • Тег ul. Отображает маркированный список. Это может быть краткое описание товара.
  • Тег img. Предназначен для отображения на странице изображений. Это могут быть фотографии товара.

В тегах может указываться название стиля для визуального отображения информации на сайте, например заданый стиль блока позволяет отобразить для какого-либо элемента жирный шрифт текста или зелёный цвет. На основании этих стандартизированных данных в системе E-Trade Jumper можно настроить парсер под любой интернет-магазин для получения нужной Вам информации, парсер E-Trade Jumper для получения данных использует селекторы CSS (дизайн стили сайта) или XPath (язык запросов к элементам сайта).

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

Создание нового парсера

Для добавления нового парсера сайта откройте окно "Прайс-листы", нажмите кнопку "+" и выберите пункт "Добавить контрагента"


Укажите название контрагента (интернет-магазина) и выберите группу, по умолчанию доступны группы: Поставщик, Конкурент, Клиент.


После добавления контрагента Вам будет предложен выбор откуда Вы хотите загружать данные, в этом списке выберите пункт "Парсер сайта" и нажмите кнопку "Добавить сайт"


Укажите адрес интернет-магазина для парсинга данных

 

Настройка парсера для получения данных из интернет-магазина

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

  1. Получить ссылки на категории товаров
  2. Получить ссылки на товары
  3. Получить карточки товаров и сохранить нужную информацию


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


Таблица настройки содержит типы операций и список полей для сохранения в них данных. Типы операций это этапы работы парсера для получения данных с сайта.

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

Типы операций:

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

Описание колонок сетки для настройки парсера

  • Селектор операции. Признак главного селектора получения данных с сайта для выполнения этой операции.
  • Название поля. Название операции или поля для сохранения в него данных.
  • Селектор №1-4. Парсер E-Trade Jumper для получения данных со страниц сайта использует селекторы CSS (стили сайта) или XPath (язык запросов к элементам сайта), в поля селекторов указываются условия по которым необходимо находить на сайте нужные Вам блоки и получать из них информацию.
  • Ссылка для тестирования. Ссылка на страницу сайта для тестирования получения данных. Для каждой операции указывается ссылка на отдельный раздел сайта, например для операции "Список ссылок на категории товаров" указывается ссылка на главную страницу сайта, где есть список всех категорий товаров. Для тестирования получения атрибутов товаров для операции "Карточка товара" указывается ссылка на товар.
  • Текст для очистки. Ключевые слова для очистки при получении данных. Например в наименовании товара на сайте есть лишний текст, который Вы не хотите получать с сайта, Вы можете задать этот текст в поле "Текст для очистки" для его удаления.
  • Найти. Текст для поиска.
  • Заменить. Текст для замены (на основании найденного текста).
  • Получать HTML. Если необходимо сохранить форматирование текста полученног со страницы сайта с использованием тегов html, тогда установите этот флаг.
  • Регулярное выражение. Вы можете применить регулярное выражение для получения нужного значения на основании текста полученного через селектор, то есть более детально разобрать строку на составляющие и получить то, что необходимо в итоге.
  • XPath. Активация для селектора режима работы языка запросов XPath.
  • Максимальное количество результатов. Позволяет ограничить загрузку данных для тестирования загрузки, чтобы не ждать пока скачается весь сайт, можно задать получение только 1 ссылки на категорию и получение к примеру, 2 ссылок на товары, для этого для каждой операции Вы можете задать количество результатов.
  • Товары в этой операции. Вы можете получать товары без открытия карточек товаров на сайте. Данный режим будет полезен, если требуется получить только цены на товары и другие значения, которые доступны при листинге товаров в категории.
  • Примечание. Примечание для строки настройки, например, Вы можете для себя сохранить напоминание, что означает эта настройка.
Селекторы могут быть в виде тегов html и стилей CSS (дизайн стили сайта), а так же в виде языка запросов к элементам сайта XPath. Для активации режима XPath в сетке поставьте этот флаг для нужного вам поля или операции

Этап №1. Получение списка ссылок на категории товаров

Для получения списка ссылок на категории товаров необходимо найти селектор ссылки, которая ведёт на категорию, для этого скопируйте ссылку с сайта (обычно это главная страница сайта) в поле "Ссылка для тестирования" и нажмите кнопку "Т"


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

Внимание! Тестирование загрузки возможно только для сайтов, которые используют безопасный протокол https, только для таких сайтов можно визуально проверить получение данных во вкладке "Тестирование загрузки", при этом, всё же можно настроить парсинг таких сайтов (использующих не безопасный протокол http), но визуально проверить получение данных не получится, то есть все теги и селекторы необходимо вводить "вслепую" (наугад).

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

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

Ищем блоки категорий товаров и ссылку в них
Ваша задача найти блоки ссылок на категории товаров. После того как Вы выбрали пункт "Просмотреть код" браузер откроет исходный код сайта в том месте, где была нажата правая клавиша мышки, в данном примере мы нажали на названии категории и видим что ссылки на категории располагаются в тегах "div" и "a" (картинка ниже кликабельна для увеличения).

Как видно каждая категория товара имеет блок "div" и в нём содержатся ссылки "a", при этом блок "div" имеет название стиля links-list (class="links-list") и ссылка "a" имеет название стиля link (class="link") .

Пропишем селекторы в настройку парсера в таком виде: указываем названия тегов через пробел и через точку указываем имена стилей. Можно просто указать тег "a" и его стиль, если он уникальный в пределах страницы для ссыли которая ведёт на категорию товара (тогда 1й пункт прописавать не нужно).

Проверяем результат, для этого нажимаем кнопку "Т". Как видно на примере, мы получили 74 ссылки на категории товаров, то есть наш парсер уже умеет искать категории на стороннем сайте

Этап №2. Получение списка ссылок на товары

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


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

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

Ищем блоки товаров и ссылку в них
Ваша задача найти блоки товаров с ссылками на карточку товара. После того как Вы выбрали пункт "Просмотреть код" браузер откроет исходный код сайта в том месте, где была нажата правая клавиша мышки, в данном примере мы нажали на наименование товара и видим что ссылки на товары располагаются в тегах "div" и "a".
То есть каждый товар в результатах поиска имеет блок "div" и в нём содержит ссылку "a", при этом блок "div" имеет название стиля tile (class="tile").

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

Проверяем результат, для этого нажимаем кнопку "Т". Как видно на примере, мы получили 28 ссылок на товары, то есть наш парсер уже умеет находить товары на стороннем сайте


Настройка перехода по страницам (пагинация)
При открытии категории товаров обычно отображаются не все товары, например, может быть отображено только 28 товаров, следующие товары находятся на странице №2, этот режим называется пагинация (постраничный вывод информации). Для получение ссылок товаров на других страницах необходимо найти селектор ссылки, которая ведёт на следующую страницу, Вам необходимо найти на странице навигационный блок для перехода на другие страницы (пагинатор), на примере ниже, этот блок выглядит так и имеет такой селектор
ul[name="paginator"] li a

Найденный селектор для пагинации товаров указываем в поле "Селектор №2"

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

Чтобы решить эту проблему требуется узнать текущий адрес страницы. Необходимо открыть исходный код сайта и попробовать найти адрес на текущую страницу, если таковой найден, тогда необходимо указать в поле Селектор №3 теги как его получить, например их блока "Breadcrumbs" (хлебные крошки): div.breadcrumbs a.active


Этап №2 можно использовать для получения только списка товаров, данный режим будет полезен когда необходимо получить только цены на товары, без описаний, тех. характеристик и фото, при этом скорость получение данных с сайта будет в разы выше (нет необходимости на сайте переходить в карточки товаров). Для активации этого режима установите флаг "Товары в этой операции" для типа операции "Список ссылок на товары", далее укажите селекторы для полей, которые нужно заполнить с сайта. Соответственно слектор для получения ссылок на товары заполнять не нужно, только получение "пагинации".

 

Этап №3. Получение данных из карточки товара.

По аналогии с поиском селектора ссылок на товары необходимо найти селекторы на нужные Вам поля в карточке товара, для этого прописываем ссылку на тестовый товар в поле "Ссылка для тестирования" и открываем её


Вам необходимо нажать правой кнопкой мышки на наименовании товара и выбрать пункт "Просмотреть код", после этого откроется окно браузера с исходным кодом сайта.
Например наименование товара находится в теге h1

Пропишем селектор h1 в таблицу настроек


Далее ищем селектор для цены товара

Прописываем селектор в таком виде
div.main-price span.price-number span


Далее ищем селектор для описания товара

Прописываем селектор в таком виде
div[itemprop="description"]

Для ссылок на фото прописываем такой селектор
div.image img::attr(src)

Проверяем результат

Этап №4. Получение атрибутов товара.

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

Порядок действий:

  • В поле "Селектор №1" указываем селектор на блок атрибутов
  • В поле "Селектор №2" указываем селектор на блок в котором есть название и значение атрибута (то есть на строку таблицы атрибутов)
  • В поле "Название атрибута" указываем селектор где находится название атрибута
  • В поле "Значение атрибуты" указываем селектор где находится значение атрибута




Пример настройки


Пример настройки на основании исходного кода сайта


Результат проверки получения атрибутов товаров (характеристик, свойств)


Если атрибуты находятся на отдельной странице

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

Варивант №1. Ссылка есть в исходном коде html.
Необходимо настроить селектор №3 для типа операции "Атрибуты товара" для получения ссылки (или части ссылки на страницу атрибутов).
Например, при клике на вкладку на сайте есть такой html код, тогда селектор для получения ссылки будет: a.nav-tabs-link

Варивант №2. К ссылке на товар добавляется префикс, которого нет в явном виде в исходном коде html.
Необходимо для типа операции "Атрибуты товара" прописать префикс ссылки в селектор №4 для добавления его к ссылке товара.
Например, можно прописать: tab=characteristics, тогда программа откроет ссылку на товар + префикс, тем самым парсер попадёт на страницу атрибутов товаров. Что именно прописывать в префиксе определяется опытным путём после тщательного анализа сайта.

Запуск парсинга с загрузкой каталога товаров со стороннего сайта.

Загрузка товаров с сайта интернет-магазина будет произведена в таком порядке:

  1. Получаем ссылки на категории товаров
  2. Получаем ссылки на товары
  3. Получаем карточки товаров и сохраняем нужную информацию


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

Получение товаров из определённых категорий

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


Программа для интернет магазина


Далее