Данный парсер применяется для того, чтобы собрать список товаров, или же в случае, когда с сайта нужно собирать только цены и наличие товаров. В этом случае парсеру не нужно заходить в каждую карточку товара, а достаточно собрать информацию из группы, на одной странице которой может отображаться сразу 20 или больше товаров, соответственно скорость сбора информации будет в разы выше. Пример страницы категории, на которой отображаются сразу несколько товаров:
...
Сначала нужно добавить список ссылок на категории, которые будут парситься. Это можно сделать как вручную Настройка групп товаров для парсинга , так и с помощью парсера ссылок на группы Парсер ссылок на группы товаров
Чтобы парсер выполнялся, в настройках парсера должна стоять такая птичка.
...
Warning |
---|
Выполняйте тесты, как описано в конце инструкции, чтобы убедиться, что результаты получены парсером правильно, прежде чем запускать парсер. |
Настройки парсера
Перейдите во вкладку “Настройки”
...
1. Нужно указать блок, в котором находится список товаров, для этого указываются теги начала и конца блока
...
Пример:
...
Можно указать только “Начало блока товаров”, в этом случае вырезаться блок не будет, а парсер просто перейдет к нужному тегу и начнет парсинг от начала этого тега до конца страницы.
2. Указать блок в котором содержится 1 товар из группы
...
В моем примере найдено 40 совпадений, при этом на странице отображается 40 товаров, значит все ок. Если бы совпадений было больше или меньше, то нужно было бы разбираться, почему так, и использовать другие теги.
Количество совпадений можно смотреть так же в браузере при поиске - количество найденных должно быть равно количеству товаров на странице, если вы хотите ограничить блок товара.
...
3. Указать проверку для блока текста страницы, полученного в качестве товара (не обязательно указывать). Бывают случаи, когда в группе на сайте могут в одних и тех же блоках отображаться не только товары, но и какие-нибудь рекламные предложения, в этом случае можно добавить проверку, что в полученном блоке именно товар.
...
Можно указать какой-то текст, который однозначно определяет что в блоке товар, например, код кнопки купить. Или наоборот, текст, при наличии которого в блоке будет означать, что это не товар.
4. Указать теги для получения Названия товара и ссылки на него. Здесь можно указать как просто теги для значений, так и сначала “вырезать” блок текста, а уже потом из него вырезать название и ссылку.
...
Блок нужно указывать в случае, если нельзя однозначно определить нужный элемент по его границам. Можно указать только “Блок от” - в этом случае парсер сначала перейдет к этому тегу, а затем вырежет текст для названия или ссылки.
Если ссылка в тексте страницы не полная, можно задать шаблон для получения полной ссылки
...
В шаблон вместо {URL} подставляется то, что получено парсером для значения поля ссылки.
5. Указать теги цены. Можно указать 2 тега цены. При этом сохраняется только одно значение в поле Цена. Теги для “Цена 2” проверяются только в случае, если не найдено значение по тегам для “Цена 1”. Это можно использовать в случаях, например, когда у товара есть акционная цена, то она выводится в других тегах. Теги акционной цены нужно задавать в “Цена 1” и если по ним ничего не найдет, то будет поиск обычной цены по тегам “Цена 2”.
...
Для цены так же нужно указать ID валюты, а так же заменить какой-то текст в полученном тексте цены. Заменять текст может понадобиться, когда в цене, например, есть копейки и они отделены не просто точкой или запятой, а каким-то html-кодом. Этот код нужно заменить на запятую.
...
ИД валюты можно посмотреть во вкладке Конфигурация.
...
Note |
---|
Если не указан ID валюты, то берется основная валюта программы |
6. Указать настройки наличия товара
Настройки наличия указываются в зависимости от присутствия того или иного текста в блоке товара. Как правило, наличие отображается в специальном поле на сайте, либо на кнопке “Купить”, когда ее текст меняется, например, на “Заказать”. Или же кнопки купить вообще может не быть.
...
Можно определить только 1 тип наличия, например “В наличии” - в этом случае, если не найден текст, определяющий, что товар в наличии, товар будет сохранен как “Нет в наличии”. Или наоборот, задать текст для “Нет в наличии”, в этом случае все остальные товары будут “В наличии”.
Настройки указываются в этом блоке
...
в виде: ИД типа наличия|текст поиска, т.е. ИД и текст поиска разделяются вертикальной чертой. ИД типа наличия можно посмотреть во вкладке Конфигурация.
...
Ид типа “Нет в наличии” всегда 2. В наличии - 1, Под заказ - 3.
Наличие по умолчанию, на случай, если ни один из заданных типов наличия не найден, можно указать так: 3|def , т.е. вместо текста поиска указывается ключевое слово def. В моем примере наличие указывается “Под заказ”, если других типов наличия не найдено.
...
При необходимости, можно так же сохранять текст наличия, если он отображается в группе. Например, срок доставки.
...
Теги указываются здесь:
...
7. Указать теги для полей Код и Бренд, при необходимости. Дополнительно к полям, указанным ранее, можно сохранить еще код и бренд товара, если они выводятся в блоке товара в категории.
...
Теги указываются по такому же принципу, как и теги для названия и ссылки.
Другие поля
Если нужно загрузить информацию в какие-то другие поля, то они настраиваются здесь:
...
Каждая строка - отдельное поле.
В строке можно указать от 5 до 8 настроек парсинга, разделенных вертикальной чертой |
Пример:
f_3rtf2qase|1|1|"profile":"|"|blockfrom|blockto|1
f_3rtf2qase - название поля, в которое сохраняется информация
1 - второй параметр, 1 - если должно быть число, 0 - если строка
1 - третий параметр, 1 - если полученное значение нужно добавить в конец названия товара, 0 - если не нужно добавлять
"profile":" - тег начала значения (4-ый)
" - тег завершения значений (5-ый)
blockfrom - тег начала блока со значением (6-й)
blockto - тег конца блока со значением (7-ой)
7-ой или 6 и 7 теги можно не указывать.
1 - восьмой параметр, ставится 1, если нужно очистить полученный результат от html-тегов. Этот параметр можно так же не указывать. Если его нужно указать, при этом не нужен текст поиска блоков, то указывается так:
f_3rtf2qase|1|1|"profile":"|"|||1
т.е. вертикальные черты должны быть и между ними пусто.
Если необходимо производить какую-то дополнительную обработку значений, то нужно эти значения получать из карточек товаров. Парсер информации из карточек товаров
Другие настройки
Флаг “Страница в JSON формате” - нужно использовать, если при парсинг категорий получает не HTML текст, а JSON.
...
Позиция товара в поле - здесь указывается код поля, в которое сохраняется номер позиции товара в категории (если, например, при открытии категории сайта товар отображается пятым, то сюда сохранится цифра 5). Это можно использовать, например, для сохранения информации о популярности товара на сайте, если в группе он выводится по популярности или можно его так отсортировать.
...
Тестирование парсера
В ходе настройки можно проверять, какую информацию собирает парсер по тем тегам, которые вы указали. Для этого нужно ввести ссылку на какую-то группу товаров с сайта (или несколько ссылок, если в разных группах на сайте информация отображается по-разному), по которой будет тестироваться и нажать кнопку “Тест”.
...
Будет отображена информация, которую получил парсер, либо какие-то ошибки:
...
Note |
---|
Текст страницы, который вы видите в браузере, может отличаться от реального текста страницы, который возвращает сайт. Возвращаемый текст может видоизменяться при помощи Java Script, поэтому проверять и настраивать парсер нужно по реальному коду страницы. |
При нажатии кнопки “Тест” текст страницы, который возвращает сайт-источник, сохраняется в файл
Quad Solutions\crmpack\temp\all_page_N.html , где N - ид парсера
Блок текста со всеми товарами сохраняется в файл
Quad Solutions\crmpack\temp\all_prod_block_N.txt, где N - ид парсера
Можно в этих файлах попробовать найти нужный вам текст и теги HTML вокруг этого текста, если введенные из браузера не работают.