↑↓ вибірEnter відкритиEsc закрити

    1. Elbuz
    2. Керівництво користувача Elbuz
    3. Збір даних із сайтів
    4. Що збирає парсер і куди це йде

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

    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.

      ГрупаПоля
      Назва й описНайменування, Модель, Опис короткий, Опис повний, Інструкція, Назва родини (варіації)
      ЦіниЦіна, Ціна РРЦ, Ціна стара, Валюта, Вартість доставки
      НаявністьСтатус наявності (з прайсу), Кількість, Стан товару
      ІдентифікаториАртикул контрагента, Артикул виробника, Виробник, Штрихкод , , Штрихкод 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 порожній, програма сама переписує список на таблицю й підставляє селектори рядка й комірок. І джерело, налаштоване на формат , а не на , — там порожній «Селектор №2» операцію не зупиняє (JSON — окрема тема, у цій статті все написане стосується розбору HTML).

      Група «Атрибути» з правилами для назви й значення характеристики
      1«Селектор №2» рядка «Селектор операції»
      2Рядок «Назва атрибута»
      3Рядок «Значення атрибута»
      1. «Селектор №2» рядка «Селектор операції» — селектор одного блоку характеристики (`.pdp-main-properties-row`), кожен такий блок дає одну пару «назва — значення».
      2. «Назва атрибута» — селектор `.pdp-main-properties-name`, звідки береться назва характеристики.
      3. «Значення атрибута» — селектор `.pdp-main-properties`, звідки береться значення характеристики.

      Що програма розбирає сама

      • «Назва: значення» в одній комірці. Якщо назва й значення злиплися в один рядок («Колір: жовтий») і селектори назви й значення беруть той самий текст, програма сама розріже його по першій двокрапці. Рядок без двокрапки пропускається. А якщо значення виділене окремим елементом усередині рядка назви (<li>Колір: <b>жовтий</b></li>), програма відріже його з назви сама. Якщо назву й значення ділить інший знак («Колір — жовтий», «Колір | жовтий»), впишіть його в колонку «Розділювач значення» рядка «Значення атрибута».
      • Значення без селектора. Якщо селектор значення не заданий зовсім, береться текст останнього вкладеного елемента рядка. На простих таблицях цього вистачає.
      • Список усередині значення. Коли в комірці значення кілька пунктів <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тактак
      Цінатактак
      Ціна старатактак
      Статус наявності (з прайсу)тактак
      Опис короткийтактак
      Артикул контрагентатактак
      Артикул виробникатактак
      Виробниктактак
      Категорія з прайсутактак
      Посилання на категоріютакполя немає
      Посилання на відеотакполя немає
      Посилання на файлтакполя немає
      Найменування—так
      Посилання на товар ()поля немаєтак

      Решту — «Опис повний», «Гарантію», «Вагу», «Колір», розміри, штрихкоди, «Модель», «Валюту», «Ціну РРЦ», «Кількість», «Стан товару», «Назву родини (варіації)», «Інструкцію», «Вартість доставки» й «Габарит» — автопошук не шукає ніколи. Ці селектори доведеться вписати руками. Окремо стоїть «Одиниця виміру»: селектора для неї автопошук не підбирає, але значення в лістингу підставити вміє — за словами «ящик» і «/ящ».

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

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

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

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

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

      Суміжні теми

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

      Зміст статті

      Спробувати безкоштовно