Що саме забирає парсер із картки товару

25 хв

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

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

  • Треба знати, чи можна забрати поле — у переліку 33 поля картки, 21 поле лістингу й 6 полів характеристик.
  • На сайті одне, а в прайсі інше — за чергою чистки видно, де значення змінилося.
  • Ціна приїхала двома числами — програма зводить ціну до числа сама; пастки лістингу розібрані окремо.
  • Характеристики не збираються — найчастіше порожній «Селектор №2» у групі «Атрибути».

З чого почати: знайдіть поле в переліку і впишіть селектор у його рядок на вкладці «Налаштування завантаження».

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

Що вміє парсер на картці товару

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

Поля налаштовуються в сітці правил — це вкладка «Налаштування завантаження» вікна «Налаштування завантаження даних із сайту». Вкладка є тільки в універсального парсера: у готового модуля (Rozetka, PROM, Hotline, eBay, Amazon та інші) правила розбору написані нами, і змінювати там нічого.

Жодне вікно парсера в меню не виведене. Дістатися до них можна лише через список прайс-листів.

Як завести джерело-парсер, налаштувати обхід сайту (розділи → посилання на товари → картка), написати і перевірити його кнопкою тесту — у статті Парсинг сайтів.

Меню
Довідники → Обробка прайс-листів → Список прайс-листів
Сітка правил
рядок джерела «Парсер сайту» → «Налаштування» → вкладка «Налаштування завантаження»
Право доступу
вікно «Прайс-листи» (у меню — «Список прайс-листів»); окремого права на сітку немає
Підготувати
заведене джерело-парсер і адресу однієї картки товару для перевірки полів
Сітка правил джерела «Парсер сайту» з чотирма групами операцій
1Заголовок групи «Картка товару»
2Колонка «Назва поля»
3Колонка «Селектор №1»
4Рядок «Селектор операції» у групі «Атрибути»
  1. Заголовок групи «Картка товару» — поля, які беруться з відкритої сторінки товару.
  2. Колонка «Назва поля» — перелік усіх полів, які вміє заповнювати парсер.
  3. Колонка «Селектор №1» — CSS-селектор, за яким береться значення поля.
  4. Рядок «Селектор операції» в групі «Атрибути» — селектор одного блоку характеристики на сторінці.

Кнопки «Зберегти» в цих вікнах немає: правка в комірці сітки йде на сервер одразу.

Шлях значення: що відбувається зі знайденим

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

Що відбувається зі значенням від елемента сторінки до рядка прайсу
нітакцінарештаЕлемент сторінки,знайдений селекторомОтримувати HTMLТекст елементаРозмітка елементаДобудова адреси для посилань іфото,відкидання # javascript: mailto:Автоматична чистка:коментарі, class, style, id,емодзі, зайві пробілиТекст для очищення,Знайти / ЗамінитиВидаляти посиланняДозволені HTML тегиТип поляЛише цифри, роздільники прайсу,два знаки після комиРегулярний виразСклейка знайденогочерез Розділювач значенняРядок прайсу джерелаОперації прайсу:наявність, валюта, націнкаОновлення базового каталогу
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді
  1. Що взяти. За замовчуванням береться текст елемента. Галочка «Отримувати HTML» лишає розмітку — вона потрібна опису, щоб зберігся поділ на абзаци й списки.
  2. Адреси добудовуються. Для полів-посилань і для фото відносна адреса перетворюється на повну; #, javascript:, tel:, callto: і mailto: відкидаються цілком; //site.com стає https://site.com; хвіст ?click_track_data= зрізається; кириличний домен переводиться в punycode.
  3. Автоматична чистка. З результату прибираються HTML-коментарі, атрибути тегів class, rel, style, id, name, title, data, емодзі, нерозривні пробіли й переноси рядків; кілька пробілів поспіль схлопуються в один.
  4. «Текст для очищення» вирізає з результату вказаний текст. Кілька значень пишуть через |||.
  5. «Знайти» / «Замінити» — три різні дії залежно від того, що заповнено. Обидва поля — звичайна заміна. Тільки «Замінити» — текст дописується в кінець значення. Тільки «Знайти» — текст вирізається.
  6. «Видаляти посилання» прибирає з результату теги посилань. Що саме видаляти — свій домен, чужі чи всі — задають два прапорці в акордеоні «Додатково» внизу вкладки. Якщо не відмічено жодного, видаляються всі посилання, а самі адреси вирізаються й з тексту.
  7. «Дозволені HTML теги» лишає з розмітки тільки перелічені, наприклад <p><br><ul><li>.
  8. Ціна зводиться до числа — про це нижче, окремим розділом.
  9. «Регулярний вираз» застосовується після всього попереднього — ним витягають зі вже очищеного значення потрібний шматок.
  10. «Розділювач значення» склеює знахідки, якщо селектор знайшов кілька елементів. За замовчуванням це кома з пробілом; для категорії — завжди  / , для фото — |||.

«Дозволені HTML теги» без галочки «Отримувати HTML» не роблять нічого. Без неї в значення приходить чистий текст елемента, тегів у ньому вже немає, і зберігати нема чого. Ці дві колонки працюють тільки в парі.

Колонки обробки значення поруч із закріпленою колонкою «Назва поля»
1Колонка «Отримувати HTML»
2Колонка «Дозволені HTML теги»
3Колонка «Текст для очищення»
4Пара колонок «Знайти» / «Замінити»
  1. «Отримувати HTML» — прапорець: чи брати значення разом із HTML-розміткою.
  2. «Дозволені HTML теги» — які теги лишити, якщо HTML брали цілком.
  3. «Текст для очищення» — фрагмент, який треба прибрати зі значення.
  4. «Знайти» / «Замінити» — пара для точкової заміни тексту в значенні.

Чотири колонки селектора — це запасні варіанти

У рядку кожного поля є «Селектор №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-title
2Поле «Гарантія» з порожнім селектором
3Поле «image» — селектор зображення товару
  1. «Найменування» — заповнений селектор `h1.pdp-main-title`, значення береться з заголовка сторінки товару.
  2. «Гарантія» — приклад поля з порожнім селектором: цю характеристику власник джерела не налаштував.
  3. «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Рядок «Значення атрибута»
  1. «Селектор №2» рядка «Селектор операції» — селектор одного блоку характеристики (`.pdp-main-properties-row`), кожен такий блок дає одну пару «назва — значення».
  2. «Назва атрибута» — селектор `.pdp-main-properties-name`, звідки береться назва характеристики.
  3. «Значення атрибута» — селектор `.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 — банерні картинки розділів. Прогін при цьому завершився без жодної помилки.

Після першого прогону відкрийте сітку товарів прайсу й подивіться на назви й ціни. Нулі в ціні й назви, схожі на заголовки розділів, означають, що обхід зачепив не ті сторінки. Повний перелік перевірок — що перевірити після першого прогону.

Товари прайс-листа джерела «Парсер сайта #993003» (comfy.ua) — рядки міст замість назв товарів
1Назва — не товар, а місто
2Ціна отримана помилково
  1. «GPS-навигаторы в Белой Церкви» та подібні рядки — це назви міст доставки, а не товари: автопідбір селекторів сплутав їх зі списком товарів на сторінці.
  2. Ціна поруч — беззмістовне число замість реальної вартості: джерело зібрало не той елемент сторінки.

Сценарії

Дві типові задачі налаштування полів. Сценарії про повторний прогін — у статті Як парсер оновлює прайс, про характеристики в каталозі — у статті Характеристики з сайту в каталозі.

Зібрати назви й ціни з розділів, не відкриваючи кожну картку

Що зробити. У групі «Список посилань на товари» поставте в рядку «Селектор операції» галочку «Товари в цій операції». У цій самій групі заповніть «Найменування», «Посилання на товар (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 рядки правил заводяться при створенні джерела, і кнопки «додати рядок» у сітці немає. Якщо значення є на сайті в таблиці параметрів, заберіть його як характеристику: у каталозі воно стане атрибутом.

Чи збирає парсер відгуки?

Ні. Прапорець «Завантажувати відгуки» в налаштуваннях є, але універсальний парсер його не читає.

Чи робить парсер із характеристик варіації товару?

Ні. Ознаки «це варіант розміру чи кольору» парсер характеристикам не проставляє — варіанти будуються з поля «Назва родини (варіації)» і з окремих сторінок товарів-опцій.

Суміжні теми

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