Elbuz забирає з картки товару на сайті постачальника назву, ціни, артикули, фото, файли й характеристики і складає їх у прайс джерела: переносити дані руками не потрібно.
Коли це знадобиться:
- Треба знати, чи можна забрати поле — у переліку 33 поля картки, 21 поле лістингу й 6 полів характеристик.
- На сайті одне, а в прайсі інше — за чергою чистки видно, де значення змінилося.
- Ціна приїхала двома числами — програма зводить ціну до числа сама; пастки лістингу розібрані окремо.
- Характеристики не збираються — найчастіше порожній «Селектор №2» у групі «Атрибути».
З чого почати: знайдіть поле в переліку і впишіть селектор у його рядок на вкладці «Налаштування завантаження».
Розмова з підтримкою — замість читати: навіщо це потрібно, що налаштувати і що ви отримаєте.
Що вміє парсер на картці товару
- 64 рядки правил — повний перелік того, що можна забрати; порожній селектор означає «не збирати», значень за замовчуванням немає.
- Чистка значення — розмітка, заміни, регулярний вираз і розділювач застосовуються у фіксованому порядку.
- Ціна зводиться до числа без регулярних виразів.
- Фото, відео й файли — заглушки й повтори відкидаються, прев'ю в картці піднімається до повного розміру.
- Характеристики — таблиця параметрів розбирається на пари «назва — значення».
- Без селектора програма заповнює категорію, чистить артикул і бере мета-теги.
- «Авто пошук селекторів» підбирає селектори для 14 полів.
- Що буде з прайсом при повторному прогоні й обриві — у статті Як парсер оновлює прайс; як характеристики стають атрибутами каталогу — у статті Характеристики з сайту в каталозі.
Де це і хто має доступ
Поля налаштовуються в сітці правил — це вкладка «Налаштування завантаження» вікна «Налаштування завантаження даних із сайту». Вкладка є тільки в універсального парсера: у готового модуля (Rozetka, PROM, Hotline, eBay, Amazon та інші) правила розбору написані нами, і змінювати там нічого.
Жодне вікно парсера в меню не виведене. Дістатися до них можна лише через список прайс-листів.
Як завести джерело-парсер, налаштувати обхід сайту (розділи → посилання на товари → картка), написати і перевірити його кнопкою тесту — у статті Парсинг сайтів.
- Меню
- Довідники → Обробка прайс-листів → Список прайс-листів
- Сітка правил
- рядок джерела «Парсер сайту» → «Налаштування» → вкладка «Налаштування завантаження»
- Право доступу
- вікно «Прайс-листи» (у меню — «Список прайс-листів»); окремого права на сітку немає
- Підготувати
- заведене джерело-парсер і адресу однієї картки товару для перевірки полів
1
Заголовок групи «Картка товару»2
Колонка «Назва поля»3
Колонка «Селектор №1»4
Рядок «Селектор операції» у групі «Атрибути»- Заголовок групи «Картка товару» — поля, які беруться з відкритої сторінки товару.
- Колонка «Назва поля» — перелік усіх полів, які вміє заповнювати парсер.
- Колонка «Селектор №1» — CSS-селектор, за яким береться значення поля.
- Рядок «Селектор операції» в групі «Атрибути» — селектор одного блоку характеристики на сторінці.
Кнопки «Зберегти» в цих вікнах немає: правка в комірці сітки йде на сервер одразу.
Шлях значення: що відбувається зі знайденим
Між тим, що ви бачите на сторінці сайту, і тим, що опиняється в прайсі, стоїть черга перетворень. Порядок у неї фіксований, і плутанина саме з цим порядком дає більшість «дивних» результатів.
- Дія або результат
- Розвилка: далі шлях залежить від відповіді
- Що взяти. За замовчуванням береться текст елемента. Галочка «Отримувати HTML» лишає розмітку — вона потрібна опису, щоб зберігся поділ на абзаци й списки.
- Адреси добудовуються. Для полів-посилань і для фото відносна адреса перетворюється на повну;
#,javascript:,tel:,callto:іmailto:відкидаються цілком;//site.comстаєhttps://site.com; хвіст?click_track_data=зрізається; кириличний домен переводиться в punycode. - Автоматична чистка. З результату прибираються HTML-коментарі, атрибути тегів
class,rel,style,id,name,title,data, емодзі, нерозривні пробіли й переноси рядків; кілька пробілів поспіль схлопуються в один. - «Текст для очищення» вирізає з результату вказаний текст. Кілька значень пишуть через
|||. - «Знайти» / «Замінити» — три різні дії залежно від того, що заповнено. Обидва поля — звичайна заміна. Тільки «Замінити» — текст дописується в кінець значення. Тільки «Знайти» — текст вирізається.
- «Видаляти посилання» прибирає з результату теги посилань. Що саме видаляти — свій домен, чужі чи всі — задають два прапорці в акордеоні «Додатково» внизу вкладки. Якщо не відмічено жодного, видаляються всі посилання, а самі адреси вирізаються й з тексту.
- «Дозволені HTML теги» лишає з розмітки тільки перелічені, наприклад
<p><br><ul><li>. - Ціна зводиться до числа — про це нижче, окремим розділом.
- «Регулярний вираз» застосовується після всього попереднього — ним витягають зі вже очищеного значення потрібний шматок.
- «Розділювач значення» склеює знахідки, якщо селектор знайшов кілька елементів. За замовчуванням це кома з пробілом; для категорії — завжди
/, для фото —|||.
«Дозволені HTML теги» без галочки «Отримувати HTML» не роблять нічого. Без неї в значення приходить чистий текст елемента, тегів у ньому вже немає, і зберігати нема чого. Ці дві колонки працюють тільки в парі.
1
Колонка «Отримувати HTML»2
Колонка «Дозволені HTML теги»3
Колонка «Текст для очищення»4
Пара колонок «Знайти» / «Замінити»- «Отримувати HTML» — прапорець: чи брати значення разом із HTML-розміткою.
- «Дозволені HTML теги» — які теги лишити, якщо HTML брали цілком.
- «Текст для очищення» — фрагмент, який треба прибрати зі значення.
- «Знайти» / «Замінити» — пара для точкової заміни тексту в значенні.
Чотири колонки селектора — це запасні варіанти
У рядку кожного поля є «Селектор №1» … «Селектор №4». Програма пробує їх по черзі й зупиняється на першому, який дав значення. Зручно, коли акційні товари розмічені інакше за звичайні: у №1 кладете основний варіант, у №2 — акційний.
Виняток один — фото. У рядку image виконуються всі чотири колонки, а знайдене складається в один список фотографій.
Фіксоване значення замість пошуку
Якщо замість селектора написати текст у фігурних дужках, він стане значенням поля, і на сторінці нічого шукатися не буде. {Нова колекція} в полі «Виробник» проставить це слово всім товарам джерела.
Які поля можна забрати: повний перелік
Універсальному парсеру при створенні заводять рівно 64 рядки правил, згрупованих за операціями обходу. Це і є повний список того, що взагалі можна забрати: більше рядків у сітці не з'явиться, дописати своє поле не можна. Потрібного поля немає, а на сайті воно стоїть у таблиці характеристик — заберіть його як характеристику.
Селектор шукає тільки в розмітці, яку віддав сайт: дані, що сторінка підвантажує після натискання кнопки, він не знайде.
| Операція | Рядків | Що це |
|---|---|---|
| Список посилань на категорії товарів | 1 | тільки «Селектор операції», полів немає |
| Список посилань на товари | 22 | «Селектор операції» та 21 поле — працюють у режимі «без відкриття картки» |
| Картка товару | 34 | «Селектор операції» та 33 поля |
| Атрибути | 7 | «Селектор операції» та 6 полів характеристики |
Заповнений з коробки селектор у всій сітці рівно один — h1 для поля «Найменування» в «Картці товару». Решта 63 рядки порожні.
Картка товару: 33 поля
Це основний набір. Поля йдуть у сітці окремими рядками, підписи — дослівно як в інтерфейсі. Один рядок підпису не має: фото стоїть у сітці під власним кодом image.
| Група | Поля |
|---|---|
| Назва й опис | Найменування, Модель, Опис короткий, Опис повний, Інструкція, Назва родини (варіації) |
| Ціни | Ціна, Ціна РРЦ, Ціна стара, Валюта, Вартість доставки |
| Наявність | Статус наявності (з прайсу), Кількість, Стан товару |
| Ідентифікатори | Артикул контрагента, Артикул виробника, Виробник, Штрихкод EAN, GTIN, Штрихкод ISBN |
| Розміри й вага | Висота, Ширина, Глибина, Вага, Габарит, Одиниця виміру, Колір, Гарантія |
| Категорія | Категорія з прайсу, Посилання на категорію |
| Медіа | image, Посилання на відео, Посилання на файл |
1
«Найменування» із селектором h1.pdp-main-title2
Поле «Гарантія» з порожнім селектором3
Поле «image» — селектор зображення товару- «Найменування» — заповнений селектор `h1.pdp-main-title`, значення береться з заголовка сторінки товару.
- «Гарантія» — приклад поля з порожнім селектором: цю характеристику власник джерела не налаштував.
- «image» — селектор зображення товару, значення заповнене.
Лістинг: 21 поле
Якщо в рядку «Селектор операції» групи «Список посилань на товари» стоїть галочка «Товари в цій операції», картки взагалі не відкриваються: назви й ціни беруться прямо зі сторінки розділу — з у.
Набір полів там свій, коротший.
Це ті самі 20 полів картки, без розмірів, ваги, кольору, гарантії, стану товару, родини, інструкції, вартості доставки, посилання на категорію, відео й файлів, — і плюс одне, якого в картці немає: «Посилання на товар (URL)». У картці адреса відома й так, а в лістингу її треба забрати селектором.
У режимі лістингу товар без назви або без адреси не зберігається взагалі. Тому поле «Посилання на товар (URL)» тут обов'язкове нарівні з «Найменуванням»: без нього прогін пройде чисто, а в прайсі не буде жодного рядка.
У режимі «Картка товару» такої перевірки немає — товар без назви збережеться порожнім рядком.
Атрибути: 6 полів
«Назва атрибута», «Значення атрибута», «Назва блоку атрибута», «Опис атрибуту», «Посилання на картинку атрибута», «Посилання на картинку блока атрибута». Про них — окремий розділ нижче.
У переліку типів операцій є ще п'ята — «Фото», — але правил цієї операції не заводять. Фото збирає поле image у «Картці товару» й у лістингу.
Які поля налаштовують насправді
Полів у сітці багато, але на практиці налаштовують сім-вісім — решта стоїть про запас. Ось вони, у порядку від найпотрібнішого:
- Найменування, категорія з прайсу і ціна — без них рядок прайсу марний;
- виробник, артикул контрагента й артикул виробника — за ними працює зіставлення з вашим каталогом;
- статус наявності і кількість;
- опис повний і короткий, РРЦ, ціна стара — коли з сайту постачальника тягнуть ще й контент.
Порожнє поле — не «не підтримується»: кожне вмикається одним селектором рівно так само, як ціна чи назва.
Як парсер забирає ціну: три поля й дві пастки
Цінових полів у картці три: «Ціна», «Ціна РРЦ» і «Ціна стара». Плюс «Валюта» — окремим рядком, текстом із сторінки.
Значення поля типу «ціна» зводиться до числа: з нього викидається все, крім цифр, коми й крапки; далі програма дивиться на роздільники, задані самому прайсу (за замовчуванням десятковий — крапка, тисячний — кома), і округлює результат до двох знаків. Тому 1 499,50 грн перетвориться на 1499.50 без жодного регулярного виразу.
Записана ціна одразу лягає в три колонки прайсу: власне ціну, початкову ціну й собівартість. Далі з нею працюють звичайні операції прайс-листа — націнка, округлення, перерахунок валюти.
Дві пастки, і обидві стосуються тільки режиму лістингу, а в «Картці товару» не працюють.
Дві ціни в одному елементі. Коли сайт малює стару й нову ціну поруч, у значення потрапляють обидві. У лістингу програма це впізнає: якщо позначка валюти (грн, ₴, $, USD, €, EUR, PLN та інші) трапилася в рядку двічі, беруться обидва числа й зберігається менше. У картці товару такого відбору немає — там доведеться уточнити селектор.
Копійки окремим елементом. Деякі сайти виводять гривні й копійки різними тегами. У лістингу для цього є прийом: селектор гривень пишуть у «Селектор №1», селектор копійок — у «Селектор №4», і програма складе їх у одне число, поділивши друге на сто. У картці товару такого складання немає: там «Селектор №4» у рядку поля — просто ще один запасний варіант.
Фото, відео й файли: що програма робить з адресами
Фото збирає одне поле; у сітці правил воно підписане кодом image. Виконуються всі чотири колонки селектора, знайдене складається в один список у порядку знаходження: перше фото стане головним у каталозі.
Що програма робить із кожною знайденою адресою — однаково в обох режимах:
- Відкидає заглушки. Якщо в адресі трапилося
placeholder,no-photo,empty,no_image,no-imageабо/brand/, знімок не зберігається зовсім. - Відправляє ютуб у відео. Посилання з
youtube.com/watch, яке потрапило вimage, зберігається як відео, а не як фото. - Пропускає вбудовані картинки
data:image; у «Картці товару» — ще й файли.swg. - Відкидає повтори — одна й та сама адреса в межах товару зберігається один раз.
- Екранує роздільники в адресі. Кома, крапка з комою й вертикальна риска перетворюються на
%2C,%3B,%7C: список фотографій зберігається одним рядком, і адреса виду…/image/width=1063,height=1063/…інакше поплуталася б із роздільником списку.
Дві речі є тільки в «Картці товару»:
- Найбільший розмір із
srcset. Якщо в тексті селектора є словоsrcset— наприклад,img.photo::attr(srcset), — із набору варіантів вибирається адреса з найбільшою шириною; запис2xпри цьому вважається більшим за1x. - Спроба підняти прев'ю до повного розміру. З адреси знімаються параметри
w,h,width,height,resize,size,thumb,thumbnail, а з імені файла — суфікси розміру виду_100x100,-150x150і слова-thumb,-thumbnail,_small,_mini,_tiny,-previewперед розширенням. Якщо після цього адреса перестала бути схожою на адресу, повертається початкова: краще робоче прев'ю, ніж битий «великий» файл.
У лістингу натомість програма вміє дістати адресу з CSS-фону — background-image: url(...).
Прийом із srcset у лістингу не працює. Селектор img.photo::attr(srcset) дасть там перший варіант набору — зазвичай найдрібніший, — а підняття прев'ю до повного розміру в лістингу теж немає. Якщо збираєте без відкриття картки, беріть повний розмір іншим атрибутом: ::attr(data-src), ::attr(data-large) або те, у чому сайт тримає велике фото.
Обмеження на кількість фотографій із однієї картки немає. Колонка «Макс. кількість результатів» читається лише з рядка «Селектор операції» й обмежує списки посилань, а не поля.
Парсер не завантажує самі файли — він зберігає адреси. Знімок стає вашою копією в хмарі вже під час оновлення базового каталогу; що при цьому відбувається з порядком, головним фото й тим, чия це копія, — у статті Фотографії товару. Водяний знак на цьому шляху не накладається взагалі: він є тільки у вивантаженнях.
Відео і файли
«Посилання на відео» й «Посилання на файл» є тільки в «Картці товару». Значення відео ріжеться по комі, повтори відкидаються.
У файлів є особливість, яку варто знати: програма бере адресу з атрибута href, а текст самого посилання зберігає як назву файла. Тобто селектор a.instruction дасть і адресу, і підпис «Інструкція з експлуатації», а селектор a[href*=pdf]::attr(href) — тільки адресу, з порожньою назвою.
Як зібрати характеристики товару
Таблиця параметрів товару збирається окремою операцією — «Атрибути». Вона розбирає таблицю рядок за рядком і зберігає пари «назва — значення».
Задається чотирма селекторами:
- «Селектор операції», Селектор №1 — блок характеристик, наприклад
table.specs. Порожньо — шукати по всій сторінці. - «Селектор операції», Селектор №2 — селектор одного рядка характеристики, зазвичай
tr. - «Назва атрибута» і «Значення атрибута» — селектори комірок усередині рядка, наприклад
td.nameіtd.value.
Ще два рядки, «Назва блоку атрибута» й «Опис атрибуту», потрібні сайтам, де характеристики поділені на розділи.
Порожній «Селектор №2» зупиняє операцію повністю: без селектора рядка вона виходить, нічого не зібравши, скільки б не було заповнено нижче. Це найчастіша причина «характеристики не збираються, хоча все налаштовано».
Винятків два. Розмітка тегами <dl>: якщо Селектор №1 дорівнює dl або починається з dl., а Селектор №2 порожній, програма сама переписує список на таблицю й підставляє селектори рядка й комірок. І джерело, налаштоване на формат JSON, а не на HTML, — там порожній «Селектор №2» операцію не зупиняє (JSON — окрема тема, у цій статті все написане стосується розбору HTML).
1
«Селектор №2» рядка «Селектор операції»2
Рядок «Назва атрибута»3
Рядок «Значення атрибута»- «Селектор №2» рядка «Селектор операції» — селектор одного блоку характеристики (`.pdp-main-properties-row`), кожен такий блок дає одну пару «назва — значення».
- «Назва атрибута» — селектор `.pdp-main-properties-name`, звідки береться назва характеристики.
- «Значення атрибута» — селектор `.pdp-main-properties`, звідки береться значення характеристики.
Що програма розбирає сама
- «Назва: значення» в одній комірці. Якщо назва й значення злиплися в один рядок («Колір: жовтий»), впишіть двокрапку в колонку «Розділювач значення» рядка «Значення атрибута» — програма розріже рядок по ній.
- Значення без селектора. Якщо селектор значення не заданий зовсім, береться текст останнього вкладеного елемента рядка. На простих таблицях цього вистачає.
- Список усередині значення. Коли в комірці значення кілька пунктів
<li>, а розділювачів у тексті немає, пункти склеюються через «Розділювач значення»; за замовчуванням це похила риска з пробілами. - Знаки питання й двокрапки з назви атрибута видаляються.
Що програма викидає
Не зберігаються пари, де порожня назва або порожнє значення; пари, де назва дорівнює значенню (це майже завжди означає, що обидва селектори вказують на той самий елемент); повтор попереднього рядка; і повні дублі — по трійці «блок + назва + значення».
Приклад із живого налаштування: селектор блоку #pdpPropertiesContent, селектор рядка .pdp-main-properties-row, селектор назви .pdp-main-properties-name, селектор значення .pdp-main-properties. З однієї картки телевізора зібралося 42 характеристики — «Діагональ / 65"», «Частота розгортки / 165 Гц», «Рік випуску / 2026» — у тому порядку, у якому вони стоять на сайті; тією ж карткою приїхали 18 фотографій і один файл.
Як зібрані назви стають атрибутами вашого каталогу і як не роздути довідник — у статті Характеристики з сайту в каталозі.
Що програма заповнює сама, без селектора
Кілька речей заповнюються без вашої участі, і на них не треба витрачати рядки правил.
Категорія. Якщо поле «Категорія з прайсу» порожнє, програма читає «хлібні крихти» з розмітки сторінки для пошукових систем і склеює їх через / .
Далі з початку рядка зрізаються службові ланки — «Головна / », «Каталог / », «Магазин / », «Всі товари / » й ще з десяток варіантів, — а сама назва товару з рядка вирізається: остання крихта зазвичай і є назвою картки.
Артикул чиститься сам. З обох артикульних полів — «Артикул контрагента» й «Артикул виробника» — програма вирізає слова «Артикул товара», «Артикул», «Арт.», «Код товара», «Код товару», «Код», «SKU» і всі двокрапки. Це відбувається в обох режимах, і селектор .pdp-menu-code на сторінці з написом «Код: 7265989» покладе в прайс 7265989.
Наявність, артикул, виробник і одиниця виміру в лістингу. Коли ввімкнено «Авто пошук селекторів», а селектор не спрацював, програма шукає значення по тексту сторінки:
- наявність — за списком слів («В наявності», «Немає на складі», «Під замовлення», «Очікується» й ще два десятки українських, російських і англійських варіантів);
- артикул — за написами «Код товара:», «Код товару:», «Код:», «SKU:», «Артикул товара:», «Арт.:»;
- виробника — за «Бренд:» і «Производитель:»;
- одиницю виміру — за словами «ящик» і «/ящ».
Якщо наявність так і не знайшлася, у лістингу підставляється +.
Той самий увімкнений автопошук дописує «Бренд:» і «Производитель:» у чистку поля «Виробник» — це вже в обох режимах.
Автоочистка артикула дозволу не питає. Артикул Код-114 приїде як -114, SKU12 — як 12, а A:B — як AB. Якщо номери постачальника містять ці слова або двокрапку, забирайте їх не в артикульне поле, а, наприклад, у «Модель» — там нічого не вирізається.
Валюта й статус наявності доводяться після обходу. Коли останнє завдання закрито, до зібраних товарів застосовуються звичайні операції прайс-листа. Саме вони перетворюють текст «В наличии» з поля «Статус наявності (з прайсу)» на статус «В наявності» за правилами розпізнавання наявності, підставляють валюту й рахують націнку.
Мета-теги й текстова копія сторінки
Два прапорці на вкладці «Додатково», група «Які дані збирати». Обидва вимкнені за замовчуванням.
«Зберігати meta теги» — програма читає <title> і мета-теги сторінки й кладе їх у мета-поля товару: заголовок, опис і ключові слова. У режимі лістингу до кожного з трьох значень спереду дописується назва товару, у «Картці товару» вони пишуться як є.
«Зберігати текстову копію сторінок сайту» зберігає очищений від розмітки текст сторінки в поле «Текстова копія сторінки сайту» рядка прайсу. Працює це тільки в режимі «Картка товару»: у лістингу текст сторінки не зберігається, скільки б прапорець не стояв.
Які селектори підбирає «Авто пошук селекторів»
Прапорець «Авто пошук селекторів» на вкладці «Додатково» вмикає підбір: там, де колонка селектора порожня, програма перебирає власний набір типових селекторів і записує знайдене прямо в сітку правил — до чотирьох колонок на поле.
Набори заведені не на всі поля. Ось повний перелік того, що автопошук уміє шукати:
| Поле | У картці товару | У лістингу |
|---|---|---|
image | так | так |
| Ціна | так | так |
| Ціна стара | так | так |
| Статус наявності (з прайсу) | так | так |
| Опис короткий | так | так |
| Артикул контрагента | так | так |
| Артикул виробника | так | так |
| Виробник | так | так |
| Категорія з прайсу | так | так |
| Посилання на категорію | так | поля немає |
| Посилання на відео | так | поля немає |
| Посилання на файл | так | поля немає |
| Найменування | — | так |
| Посилання на товар (URL) | поля немає | так |
Решту — «Опис повний», «Гарантію», «Вагу», «Колір», розміри, штрихкоди, «Модель», «Валюту», «Ціну РРЦ», «Кількість», «Стан товару», «Назву родини (варіації)», «Інструкцію», «Вартість доставки» й «Габарит» — автопошук не шукає ніколи. Ці селектори доведеться вписати руками. Окремо стоїть «Одиниця виміру»: селектора для неї автопошук не підбирає, але значення в лістингу підставити вміє — за словами «ящик» і «/ящ».
Заводський селектор назви — h1, і на сторінці, яка товаром не є, він теж щось знайде: заголовок розділу. Автопошук при цьому підставляє опис — перший блок із класом на кшталт description.
Так і сталося на живому налаштуванні: обхід зачепив сторінки міст, і в прайс приїхало 223 «товари» з назвами виду «Посуд в Ізмаїлі», «Посуд в Білій Церкві», «Посуд в Чернігові» й однаковим описом «з 8:00 до 21:00 (пн-нд) Безкоштовно по Україні…» — це банер доставки.
У 38 із 223 рядків ціна нульова, а фотографій до них набралося 727 — банерні картинки розділів. Прогін при цьому завершився без жодної помилки.
Після першого прогону відкрийте сітку товарів прайсу й подивіться на назви й ціни. Нулі в ціні й назви, схожі на заголовки розділів, означають, що обхід зачепив не ті сторінки. Повний перелік перевірок — що перевірити після першого прогону.
1
Назва — не товар, а місто2
Ціна отримана помилково- «GPS-навигаторы в Белой Церкви» та подібні рядки — це назви міст доставки, а не товари: автопідбір селекторів сплутав їх зі списком товарів на сторінці.
- Ціна поруч — беззмістовне число замість реальної вартості: джерело зібрало не той елемент сторінки.
Сценарії
Дві типові задачі налаштування полів. Сценарії про повторний прогін — у статті Як парсер оновлює прайс, про характеристики в каталозі — у статті Характеристики з сайту в каталозі.
Зібрати назви й ціни з розділів, не відкриваючи кожну картку
Що зробити. У групі «Список посилань на товари» поставте в рядку «Селектор операції» галочку «Товари в цій операції». У цій самій групі заповніть «Найменування», «Посилання на товар (URL)» і «Ціна».
Що вийде. Завдання на картки не створюються: рядки прайсу пишуться прямо зі сторінок розділів, з тих 21 поля, що є в лістингу.
Чого не буде. Рядок без назви або без адреси не збережеться. Характеристик не буде: групу «Атрибути» програма розбирає лише на відкритій картці товару. Відео й файлів у лістингу теж немає — цих полів у ньому не заведено.
Брати з сайту постачальника тільки фото й характеристики, а ціну не чіпати
Задача. Постачальник шле файл зі своєю ціною для вас і посиланнями на картки товарів, а на сайті показує роздрібну ціну. З сайту потрібні лише фото й характеристики.
Що зробити. У картці файлового прайсу, секція «Джерело», натисніть «Створити парсер сайту». Кнопка активна, коли в прайсі є стовпець, зіставлений із полем «Посилання на товар (URL)», і прайс уже завантажено. У вікні «Налаштування завантаження даних із сайту» нового парсера заповніть селектори фото (група «Картка товару») і характеристик (група «Атрибути»), а рядки «Ціна», «Ціна РРЦ» і «Ціна стара» лиште без селектора.
Що вийде. Кнопка створює в цього постачальника окремий прайс-парсер, прив'язаний до вашого прайсу: він відкриває картки за посиланнями з прайсу. У ваш основний прайс повертаються лише ціна, кількість і статус наявності, і лише заповнені: ціна — коли вона більша за нуль, тож без селектора ціни лишається ціна з файлу.
Фото й характеристики в основний прайс не переходять — вони лежать у прайсі-парсері й потрапляють у картки товарів, коли оновлення базового каталогу обробляє цей прайс-парсер. Перенесення фото й атрибутів у прайсу-парсера ввімкнене за замовчуванням.
Чого не буде. Якщо селектор ціни все ж налаштувати, ненульова ціна з сайту перезапише ціну з файлу в основному прайсі. Те саме з наявністю: зібрані з сайту кількість і статус наявності замінюють файлові, порожні — ні. Перенесення фото й характеристик від парсера в каталог платне (докладніше).
Що робити, коли в прайсі не те, що на сайті
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| У прайсі назви на кшталт «Посуд в Ізмаїлі», ціна нульова | Обхід зачепив сторінки, які товарами не є, а заводський селектор h1 узяв із них заголовок за назву |
Уточнити селектор посилань на товари або додати адреси розділів у «Список посилань» (про автопошук) |
| Артикул у прайсі коротший, ніж на сайті: замість «Код-114» лежить «-114» | Автоочистка артикула вирізає з обох артикульних полів слова «Артикул», «Арт.», «Код», «SKU» і всі двокрапки — незалежно від режиму | Забирати такий номер не в артикульне поле, а, наприклад, у «Модель», де чистки немає (що програма робить сама) |
| Характеристики не збираються, хоча селектори назви й значення заповнені | Порожній «Селектор №2» у рядку «Селектор операції» групи «Атрибути»: без селектора рядка операція виходить, нічого не зробивши | Вписати в «Селектор №2» селектор одного рядка характеристики, зазвичай tr (про характеристики) |
| Характеристик зібралося менше, ніж на сайті | Пари, де назва дорівнює значенню, і повні дублі програма відкидає сама. Однакові назва й значення означають, що обидва селектори вказують на той самий елемент | Уточнити селектори комірок «Назва атрибута» і «Значення атрибута» (що програма викидає) |
| У ціні опинилося число зі старої ціни або два числа поспіль | Селектор захопив блок, у якому намальовані обидві ціни. Відбір меншої з двох працює тільки в режимі лістингу | Уточнити селектор до елемента з поточною ціною або скористатися «Регулярним виразом» (про ціну) |
| Головним фото стала картинка-заглушка | Програма відкидає заглушки за іменами placeholder, no-photo, empty, no_image, no-image і за /brand/; заглушка з іншим іменем у цей список не потрапляє |
Уточнити селектор зображення; як запасний варіант — вписати всю адресу заглушки в «Текст для очищення» рядка image: значення стане порожнім і знімок не збережеться (про фото) |
| Фотографії приїхали маленькими, як мініатюри в галереї | Селектор узяв атрибут прев'ю. Автоматичне підняття до повного розміру знімає лише типові позначки на кшталт _100x100 або ?width= |
У «Картці товару» — узяти адресу з srcset: img.photo::attr(srcset), програма вибере найширший варіант. У лістингу srcset не допоможе: там треба інший атрибут із повним розміром (про фото) |
| У режимі «без відкриття картки» прогін пройшов, а в прайсі порожньо | Товар без назви або без адреси не зберігається | Заповнити в групі «Список посилань на товари» обидва поля — «Найменування» і «Посилання на товар (URL)» (про лістинг) |
| У «Категорії з прайсу» опинилася назва товару або «Головна» | Категорія зібрана з хлібних крихт, а ваш варіант написання службової ланки не входить у список, який програма зрізає | Дописати зайвий текст у колонку «Текст для очищення» рядка «Категорія з прайсу» (що програма робить сама) |
Часті запитання
Чи скачує парсер самі фотографії?
Ні. Парсер зберігає тільки адреси знімків на сайті постачальника. Файл стає вашою копією в хмарі під час оновлення базового каталогу. Поки копії немає, постачальник може прибрати картинку — і вона зникне й у вас.
Скільки фотографій забере парсер з однієї картки?
Скільки знайде селектор — обмеження на кількість фото немає. Колонка «Макс. кількість результатів» обмежує списки посилань, а не поля. Повтори однієї адреси відкидаються, перше знайдене фото стане головним.
Чому артикул у прайсі коротший, ніж на сайті?
Артикул чиститься автоматично: з обох артикульних полів вирізаються слова «Артикул», «Арт.», «Код», «SKU» та інші й усі двокрапки. «Код-114» стане «-114». Такі номери забирайте в поле без чистки, наприклад у «Модель» (докладніше).
Чи можна додати своє поле до переліку?
Ні. 64 рядки правил заводяться при створенні джерела, і кнопки «додати рядок» у сітці немає. Якщо значення є на сайті в таблиці параметрів, заберіть його як характеристику: у каталозі воно стане атрибутом.
Чи збирає парсер відгуки?
Ні. Прапорець «Завантажувати відгуки» в налаштуваннях є, але універсальний парсер його не читає.
Чи робить парсер із характеристик варіації товару?
Ні. Ознаки «це варіант розміру чи кольору» парсер характеристикам не проставляє — варіанти будуються з поля «Назва родини (варіації)» і з окремих сторінок товарів-опцій.
Суміжні теми
- Якщо джерело-парсер ще не заведене або обхід не доходить до картки товару — Парсинг сайтів.
- Якщо після прогону ціни старі, товари задвоїлися або обхід обірвався — Як парсер оновлює прайс.
- Якщо характеристики зібралися, а в каталозі їх немає або довідник атрибутів розрісся — Характеристики з сайту в каталозі.
- Якщо текст наявності з сайту не став вашим статусом — Статуси наявності.
- Якщо після перенесення в каталог головним стало не те фото — Фотографії товару.

