Парсинг сайтів: як зібрати товари й ціни зі сторінок сайту

13 хв

Парсинг сайтів в Elbuz іде без ручної роботи: програма сама обходить сайт постачальника чи конкурента й забирає назви, ціни, наявність, фото й характеристики в прайс джерела, а далі обробляє їх як звичайний прайс-лист.

Коли це знадобиться:

  • Постачальник не дає прайс, а товари є на його сайті — сайт стає джерелом, правила розбору підбирає майстер або AI.
  • Сайт є серед готових парсерів — для Rozetka, PROM, Hotline селектори вже написані.
  • Ціни треба оновлювати щоночі — у серверному режимі збір іде за розкладом, без відкритого вікна.
  • Збір пройшов, а приїхало не те — журнал парсингу показує, на якому кроці обірвався ланцюжок.

З чого почати: підключіть сайт майстром джерела — плитка «Парсер сайту».

Розмова з підтримкою — замість читати: навіщо це потрібно, що налаштувати і що ви отримаєте.

Що вміє парсер сайту

Де це і хто має доступ

Жодне вікно парсера в меню не виведене й ярлика на робочому столі не має. Усі три відкриваються з одного місця — зі списку прайс-листів або з картки самого джерела.

Меню
Довідники → Обробка прайс-листів → Список прайс-листів
З картки джерела
секція «Джерело» → кнопка «Налаштування завантаження даних із сайту»
Зі списку джерел
рядок типу «Парсер сайту» → кнопка «Налаштування» в шапці правої панелі
З майстра підключення
крок «Звідки» → плитка «Парсер сайту» → «Далі»
Право доступу
вікно «Прайс-листи»; журнал парсингу — ще «Журнал парсингу» або «Журнал парсингу сайтів»
Підготувати
контрагента й адресу сайту; для збору без сервера — розширення Elbuz для Chrome
Модуль
«Використовувати сервер для завантаження даних» — для фонового збору й розкладу

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

Розкрите меню «Довідники» з пунктом «Список прайс-листів»
1Список прайс-листів
  1. Список прайс-листів — єдині двері до всіх вікон парсера.

Кнопка й вікно, яке вона відкриває, називаються однаково — «Налаштування завантаження даних із сайту»; далі в тексті це просто вікно налаштувань. У списку прав доступу те саме вікно записане як «Налаштування парсера джерела».

У списку джерел парсерний рядок видно за іконкою глобуса й типом «Парсер сайту». Універсальний парсер, якщо на кроці «Хто» не вписати власну назву, назветься доменом сайту; готовий модуль залишиться з тією назвою, яку дав майстер.

Виділене джерело «Парсер сайту» у списку прайс-листів
1Рядок джерела
2Кнопка «Налаштування»
3Кнопка «Імпортувати»
  1. Іконка глобуса і тип «Парсер сайту» відрізняють джерело від файлових.
  2. Кнопка-шестерінка «Налаштування» є тільки в парсерних джерел.
  3. У парсера ця кнопка відкриває вікно збору і одразу запускає обхід сайту — не натискати.

Чим парсер відрізняється від звичайного прайсу

Для решти програми джерело-парсер — такий самий прайс-лист: у нього є товари, ціни, націнка, зіставлення категорій і журнал прогонів. Відрізняється тільки те, звідки беруться дані й що саме ви налаштовуєте.

 Файл, посилання, e-mail, FTPПарсер сайту
Звідки даніодин файл, який дає постачальниксторінки сайту, які програма обходить сама
Що налаштовуєтеадреси колонок файлаправила розбору сторінки — и
Крок «Перевірка» в майстріє: зіставлення колонокпропускається, замість нього відкривається вікно налаштувань парсера
Запуск«Імпортувати» читає файл«Імпортувати» відкриває вікно «Завантаження даних із сайту», і обхід починається одразу
Журналижурнал прогонів джерелаплюс «Журнал парсингу» і жива стрічка збору

Як влаштований обхід: чотири операції

Програма ніколи не забирає «сайт цілком» одним рухом. Вона працює чергою: одна сторінка — одне . Кожна розібрана сторінка породжує завдання наступного етапу: з головної народжуються розділи, з розділу — картки товарів, із картки — сторінка характеристик. Тому налаштування парсера — це не одна форма, а чотири набори селекторів, по одному на кожну операцію. І тому порожній результат майже завжди означає, що обірвалася одна конкретна ланка, а не «парсер не працює».

Ланцюжок операцій розбору: де саме програма бере назви й ціни та що змінює прапорець «без відкриття картки»
«без відкриття картки»увімкненозвичайний обхідСписок посилань: стартові адресиСписок посилань на категоріїтоварівСписок посилань на товариНазва й ціна прямо зі сторінкирозділуКартка товару: назва, ціна, опис,фотоАтрибути товаруТовари в прайсі джерела
ОпераціяЩо робить програмаЩо задаєте виЩо зʼявиться після неї
Список посилань на категорії товарів відкриває одну сторінку (головну або сторінку каталогу) і збирає з неї адреси розділів селектор посилань на розділи завдання «Список посилань на товари» на кожен знайдений розділ
Список посилань на товари відкриває розділ — — і збирає адреси карток та адреси наступних сторінок селектор блоку товару, селектор пагінації, за потреби — поля назви й ціни завдання «Картка товару» на кожен товар і завдання на наступні сторінки розділу
Картка товару відкриває картку й заповнює поля товару, фото, відео, файли селектори полів: назва, ціна, артикул, опис, фото та інші товар у прайсі джерела; за потреби — завдання на сторінку характеристик і на товари-опції
Атрибути розбирає таблицю характеристик — на тій самій картці або на окремій сторінці селектор блоку характеристик, селектор рядка, селектори назви й значення характеристики товару

У переліку типів операцій є ще пʼята — «Фото», — але правил цієї операції не заводять. Фото збираються полем «Зображення» в «Картці товару» або в «Списку посилань на товари».

Сценарії

Перший збір із сайту постачальника

Заведіть джерело майстром: плитка «Парсер сайту», адреса сайту в блоці «Універсальний парсер» (як це працює). З автоналаштуванням перший прогін збере не більше 300 товарів і зупиниться сам. Подивіться на результат у прайсі джерела, допишіть селектори полів, яких бракує (правила розбору), і запускайте повний збір (запуск).

Збір працював, а цього разу приїхало не те

Відкрийте «Журнал парсингу» до наступного запуску: код відповіді й розмір сторінки покажуть, чи сайт відмовив, чи сторінка приїхала, але селектори її вже не розбирають. Далі — тест правила й підбір селекторів заново (порядок перевірок).

Той самий сайт — для себе й для конкурента

Два джерела на одному готовому модулі ділять одні налаштування: зміна в одному змінює й друге. Друге джерело на цей сайт заведіть універсальним парсером — у нього свій запис правил (про готові парсери).

Часті запитання

Чи потрібно тримати вікно відкритим, поки йде збір?

У браузерному режимі — так: сторінки відкриває розширення у вашому браузері, і закрите вікно зупиняє збір. У серверному режимі вікно можна закрити. Детальніше: два режими збору.

Чи обовʼязково ставити розширення Chrome, щоб парсер працював?

Ні. Воно потрібне, лише коли сторінки відкриває ваш браузер. З модулем «Використовувати сервер для завантаження даних» сторінки качає сервер Elbuz, а нативним джерелам розширення не потрібне ніколи. Як встановити — розширення Elbuz для Chrome.

Парсер прайса з сайту постачальника нічого не завантажує. Де глянути, що там відбувається?

У «Журналі парсингу»: вікно налаштувань джерела → вкладка «Додатково» → «Журнал парсингу». Код 200 і звичайний розмір — справа в правилах розбору; 403, 429 або дуже малий розмір — сайт сторінку не віддав. Детальніше: журнал парсингу.

Чи вміє парсер заходити на сайт під логіном?

Ні, форми авторизації у вікні налаштувань не задаються. З інтерфейсу доступні лише cookies й заголовки HTTP в акордеоні «Додатково» внизу вкладки «Додатково» (налаштування збирання).

Чи можна збирати з сайту статті чи новини, а не товари?

Так. В акордеоні «Додатково» вкладки «Додатково» є перемикач «Тип завантажуваних елементів»: «Товар», «Стаття», «Новина», «Рецепт». За замовчуванням — «Товар» (налаштування збирання).

Чи може система надіслати в Telegram повідомлення, що завантаження з сайту постачальника закінчилося?

Лише про всю чергу прайсів: у «Мій профіль і безпека» увімкніть «Завершення завантаження товарів з усіх прайс-листів» — прийде лист, Telegram і push. Те саме дає дія «Сповіщення» у Flows після кроку «Імпорт прайсів». Серверний парсинг у цей момент ще може тривати.

Суміжні теми

Чи була стаття корисною?