Парсер Kaspi.kz — готовий модуль Elbuz, який забирає зі сторінок маркетплейсу товари, їхні ціни й характеристики. Головне, заради чого його вмикають: на Kaspi той самий товар продають десятки магазинів, і модуль збирає ціну кожного продавця окремо — з назвою магазину, його рейтингом і строком доставки. Ви бачите не «ціну на Kaspi», а весь список пропозицій і своє місце в ньому.
Не плутайте з імпортом замовлень з Kaspi.kz: там ви підключаєте свій кабінет продавця за токеном і забираєте свої замовлення. Тут нічого підключати не треба — модуль читає публічні сторінки майданчика, як їх бачить будь-який покупець. Ці два підключення живуть окремо й не заважають одне одному.
Де це у програмі
Окремого вікна «Kaspi» в меню немає. Модуль — це тип джерела у списку прайс-листів, і всі його налаштування відкриваються звідти.
- Меню
- Довідники → Обробка прайс-листів → Список прайс-листів
- Створити
- майстер підключення → крок «Звідки» → блок «Готові парсери» → плитка «Kaspi» → «Далі»
- Налаштувати
- виберіть рядок джерела у списку → кнопка «Налаштування» у шапці правої панелі
1
Kaspi2
Далі- Kaspi — готовий парсер: з цієї плитки починається збір цін продавців маркетплейсу.
- Далі — для готового модуля лише прив'язує джерело до системного запису парсера й відкриває налаштування, назовні програма поки не звертається.
Kaspi лежить саме в блоці «Готові парсери» — це модулі, майданчики яких ми підтримуємо самі. Селекторів писати не треба: правила розбору сторінок Kaspi зашиті всередину програми й оновлюються разом із нею. Тому у вікна налаштувань цього джерела лише три вкладки — «Список посилань», «Список продавців» і «Додатково». Вкладок «Налаштування завантаження» та «Тестування завантаження», якими налаштовують універсальний парсер, тут немає взагалі.
1
Список посилань2
Список продавців3
Додатково- Список посилань — сюди вписують адреси розділів або карток, з яких починається обхід сайту.
- Список продавців — ціни магазинів, які продають цей товар на майданчику.
- Додатково — місто, обмеження та розклад завантаження.
Як завести джерело
Порядок такий самий, як у будь-якого джерела: майстер питає, від кого дані («Хто»), і звідки їх брати («Звідки»). На кроці «Хто» ви або обираєте наявного контрагента, або вписуєте назву — наприклад, «Kaspi, конкуренти». На кроці «Звідки» знаходите плитку «Kaspi» серед готових парсерів і тиснете «Далі».
Після цього джерело прив'язується до модуля й одразу відкривається вікно налаштувань. Жодного звернення до kaspi.kz на цьому кроці ще не відбувається — обхід почнеться тільки тоді, коли ви самі його запустите або спрацює розклад.
Налаштування готового модуля спільні для всіх джерел, які на ньому сидять. Копія під ваш прайс не створюється. Якщо ви завели два джерела на Kaspi — скажімо, одне під свою категорію, друге під конкурента, — зміна прапорця в одному змінить поведінку другого. Коли джерел більше одного, вікно пише про це рядком просто над вкладками.
Список посилань: з чого починається обхід
Вкладка «Список посилань» — це перелік стартових адрес. Сюди вписують або адреси розділів каталогу Kaspi, або адреси конкретних карток товару. Для кожного рядка є прапорець «Це посилання на товар»: з ним адреса йде одразу в розбір картки, без нього вважається сторінкою розділу, з якої треба зібрати посилання на товари.
Скільки брати з розділу, модуль не питає. Поля «Макс. кількість сторінок із категорії» і «Макс. кількість товарів із категорії» на вкладці «Додатково» спільні для всіх готових модулів, але модуль Kaspi їх не читає: він бере зі сторінки розділу число товарів, ділить його на 12 (стільки позицій Kaspi показує на одній сторінці) і заводить завдання на кожну сторінку розділу до останньої. Обмежити обсяг можна тільки складом самого списку посилань — давайте вужчі розділи або адреси конкретних товарів.
Ціни продавців: заради чого це роблять
Kaspi влаштований як вітрина, за якою стоять різні магазини. Відкриваєте картку товару — під нею таблиця пропозицій: хто продає, почому й за скільки днів привезе. Саме цю таблицю модуль і збирає.
Для кожної пропозиції в Elbuz потрапляють ціна, назва продавця й строк доставки. Рейтинг продавця на майданчику приходить не завжди: коли пропозиції прочитано з таблиці на сторінці, рейтингу в них немає. Додатково програма складає для кожного продавця два посилання — на його картку на Kaspi й на сторінку його відгуків, — тож перевірити магазин можна одним кліком, не шукаючи його вручну.
Зібрані пропозиції лягають у вкладку «Список продавців» вікна налаштувань. Це не просто довідник: у товару прайс-листа ціною стає найнижча з цін продавців, а назва магазину з цією ціною записується поруч. Тобто після прогону ви дивитесь у звичайний список товарів прайсу й бачите, почому цей товар зараз можна купити на Kaspi й у кого.
Пропозиції збираються двома шляхами, і програма сама обирає робочий. Спершу вона пробує прочитати таблицю продавців зі сторінки. Якщо таблиця не віддалася — бере з розмітки внутрішній номер товару й запитує пропозиції у майданчика напряму, порцією до 60 продавців на товар. Ніяких налаштувань тут немає й не потрібно: другий шлях вмикається автоматично.
Як відсіяти зайвих продавців і що буде, якщо почистити список
Вкладка «Список продавців» — це не просто перелік: у ній є прапорці, і саме вони, а не кнопка видалення, керують тим, чия ціна потрапить у товар. Прапорці переживають прогони: сам список продавців програма не чистить, вона лише дописує до нього нових і перераховує колонку «Всього товарів».
- «Чорний список» — наприкінці кожного прогону всі пропозиції цього магазину видаляються з прайсу ще до того, як програма вибере найнижчу ціну. Магазин лишається в списку, але на ціну більше не впливає.
- «Білий список» — якщо відзначений хоча б один магазин, наприкінці прогону видаляються пропозиції всіх інших. Інструмент жорсткіший, ніж здається: одна галочка відсікає весь ринок, крім позначених.
- «Джерело ціни» — пропозиції нікуди не видаляються, але найнижча ціна для рядка товару вибирається тільки серед відзначених магазинів. Середня й максимальна ціни товару, як і раніше, рахуються по всіх пропозиціях, що лишилися.
Кнопка видалення в цій вкладці робить інше й не чекає прогону: разом із рядком магазину вона видаляє всі його пропозиції по всіх товарах цього прайсу. Товари прайсу лишаються, але їхня ціна вже порахована й сама собою не перерахується — вона так і стоятиме від видаленого продавця до наступного прогону. А наступний прогін заведе цей магазин заново, щойно він трапиться на Kaspi, — з порожніми прапорцями, бо разом із рядком зникли й вони. Тому для постійного відсіву беруть «Чорний список», а не видалення.
Місто: чому ціни приходять не ті, що ви бачите
Ціни й доставка на Kaspi залежать від міста. Той самий товар у двох містах коштує по-різному, і список продавців теж відрізняється — не всі магазини возять усюди. Тому у модуля є поле «ID міста (код, назва)» на вкладці «Додатково».
Поле порожнє за замовчуванням. Порожнє означає не «будь-яке місто», а конкретне: програма підставляє код 750000000. Якщо ваші покупці в іншому місті, ціни в Elbuz будуть системно відрізнятися від тих, які ви бачите у своєму браузері, — і різниця буде тим помітніша, чим важчий товар.
Найчастіша причина «програма показує не ту ціну, що на сайті» — саме незаповнене місто. Перш ніж перевіряти селектори й проксі, звірте одну картку: відкрийте товар на kaspi.kz у своєму місті й порівняйте з тим, що приїхало. Розбіжність у кілька відсотків із тим самим продавцем — це місто.
1
ID міста (код, назва)2
Вартість доставки3
Макс. кількість сторінок із категорії- ID міста (код, назва) — порожнє поле означає не «будь-яке місто», а код 750000000, і ціни приїдуть саме для нього.
- Вартість доставки — власне значення додається до ціни, щоб порівнювати пропозиції чесно.
- Макс. кількість сторінок із категорії — нуль означає «без обмеження», для першого знайомства це не те, що потрібно.
Поруч лежить поле «Вартість доставки». Для Kaspi заповнювати його немає сенсу: модуль це значення не читає, і до ціни воно не додається.
Швидкий режим: прайс розділу без відкриття карток
На вкладці «Додатково» є прапорець «Завантажувати товари та ціни без відкриття картки». У модуля Kaspi він увімкнений за замовчуванням, і це важливо розуміти, бо режим змінює і швидкість, і склад даних.
З увімкненим прапорцем програма читає сторінку розділу й забирає з неї готовий перелік: назву, ціну, адресу товару, ланцюжок категорій, артикул продавця й одне фото. Картки товарів не відкриваються зовсім. Один запит замість сотні — зняти ціни по великому розділу виходить у рази швидше, і ризик, що майданчик почне відмовляти, набагато менший.
Ціною за швидкість буде склад даних. Без відкриття картки не приїде нічого з того, що живе тільки в ній: характеристики, опис, решта фотографій і — головне — таблиця продавців. Тобто саме та ціна, заради якої зазвичай усе й затівається, у швидкому режимі буде одна: та, що показана в списку розділу.
Звідси просте правило. Треба стежити за цінами по широкому асортименту — лишайте прапорець увімкненим. Треба бачити всіх продавців конкретного товару або наповнювати картки каталогу — знімайте прапорець і дайте адреси товарів на вкладці «Список посилань».
Що приїжджає з картки товару
Коли картки відкриваються, з кожної збираються: назва, ціна, ланцюжок категорій із «хлібних крихт», фотографії (дублікати за адресою відсіюються) і характеристики. Відгуки модуль не збирає взагалі, відео — вимкнене прапорцем у налаштуваннях модуля.
Ланцюжок категорій — не окремий довідник, який ведуть руками: він лежить полем у самому рядку товару, а дерево категорій прайсу будується з цих значень. Зіставлення категорії прайсу з категорією каталогу прив'язане до назви категорії, тому перейменований на Kaspi розділ приїде як нова категорія, і зіставити її доведеться заново.
Сторінки товарів із модифікаціями програма пропускає свідомо. На Kaspi це сторінка-обгортка, за якою стоять різні позиції з різними цінами, і взяти з неї одну ціну означало б записати неправду. Такі адреси просто не дають рядка — їх у результаті не буде, і це не помилка обходу.
Повторний прогін: що перезапишеться
На вкладці «Додатково», у групі «Обробка даних», стоїть прапорець «Видаляти товари перед завантаженням». У модуля Kaspi він увімкнений, і це головне, що треба знати перед другим прогоном.
1
Видаляти товари перед завантаженням2
Завантажувати товари та ціни без відкриття картки3
Як сервер завантажує цей сайт- Видаляти товари перед завантаженням — у модуля Kaspi увімкнено, повторний прогін починається з видалення всіх товарів прайса.
- Завантажувати товари та ціни без відкриття картки — картки не відкриваються, продавців і характеристик не буде.
- Як сервер завантажує цей сайт — від режиму залежить, скільки коштує запит сторінки.
Прапорець увімкнений. Прогін починається з видалення: з прайсу зникають усі товари, їхні характеристики, фото, зібрані пропозиції продавців і дерево категорій прайсу. Далі прайс наповнюється наново тим, що зараз віддає Kaspi. Кроку «знайти той самий товар і оновити йому ціну» в програмі немає — кожна розібрана картка лягає окремим новим рядком. Тому правка, зроблена руками в рядку прайсу — виправлена назва, своя ціна, дописане поле, — після повторного прогону зникає разом із самим рядком.
Прапорець знятий. Старі дані лишаються на місці. Перед прогоном програма вписує адреси всіх наявних товарів прайсу в журнал парсингу як уже оброблені, і по цих адресах до Kaspi не звертається взагалі: приїде тільки те, чого в прайсі ще не було. Ваші правки в старих рядках уціліють — але й ціни в цих рядках із Kaspi більше не оновлюватимуться, бо сторінки цих товарів програма не відкриває.
Одне поле оновлюється в обох режимах — ціна. Наприкінці кожного прогону програма проставляє товару прайсу найнижчу з цін його продавців, а поруч — назву магазину, який цю ціну дає, і робить це по всіх товарах прайсу, у яких є зібрані пропозиції, а не лише по щойно завантажених. Отже ціна, вписана руками, протримається тільки до кінця найближчого прогону. У швидкому режимі (без відкриття карток) пропозицій продавців немає взагалі, тож і цього перезапису не буде.
Коли товар або продавець зник із Kaspi
- Товару більше немає на майданчику, прапорець увімкнений. Рядок просто не повернеться: його видалили на старті, а новий не створився. Ні позначки «зник», ні обнуленої ціни — немає самого рядка. Поки прогін іде, сторінку, яка не відкрилася, і кількість спроб по ній видно в «Журналі парсингу», але після завершення прогону журнал цього джерела очищається — сліду не лишається.
- Товару більше немає, прапорець знятий. Рядок лишається таким, яким був: стара ціна, стара дата. Програма по ньому не ходить, тож за самим рядком відрізнити «товар зник» від «товар не змінився» неможливо.
- Продавець прибрав пропозицію. У прогоні з увімкненим прапорцем його пропозиція просто не приїде, і ціна товару перерахується по тих магазинах, які лишилися: якщо пішов саме найдешевший, ціна товару підскочить до наступної за розміром. Сам рядок магазину у вкладці «Список продавців» нікуди не дінеться — цей список прогін не чистить. Магазин, якого більше немає на майданчику, залишиться в списку з нулем у колонці «Всього товарів».
Запуск, зупинка й обрив прогону
Прогін іде у вікні «Завантаження даних із сайту». Кнопок там чотири, і роблять вони різне.
- Почати завантаження
- прогін із нуля: чистить журнал парсингу цього джерела і — якщо прапорець «Видаляти товари перед завантаженням» увімкнений — видаляє зібране, після чого заводить завдання по всіх адресах зі «Списку посилань»
- Продовжити
- доробляє незавершені завдання, нічого не видаляючи; кнопку видно тільки тоді, коли такі завдання є
- Пауза
- на сервер нічого не надсилає, лише перемикає вікно в стан, з якого видно «Продовжити»
- Скасувати
- прибирає з черги невиконані завдання й переходить до завершальних операцій
Обрив — закрили вкладку, пропала мережа, майданчик віддав заглушку — прогін не псує. Кожен розібраний товар записується в базу окремо, у міру того як приходить його сторінка, тож у прайсі лишається рівно те, що встигло приїхати. Незавершені завдання лишаються в журналі парсингу невиконаними, і їх підхоплює фонове завдання продовження парсингу: воно саме шукає прайси, у яких лишилися такі завдання, і доробляє їх. Завдання, за яким немає відповіді понад 35 секунд, повертається в чергу.
Тому після обриву правильна кнопка — «Продовжити», а не «Почати завантаження»: друга видалить зібране й почне спочатку. Задвоєння боятися не треба: завдання на ту саму адресу вдруге не заводиться, а наприкінці прогону програма ще й видаляє з прайсу рядки-дублікати — за однаковою адресою товару й за збігом артикула, назви та адреси.
Завершальні операції — вибір найнижчої ціни продавця, видалення дублікатів, націнка, перебудова пласкої таблиці прайсу — виконуються один раз, коли черга завдань спорожніє. Поки в черзі щось лишається, у рядках прайсу стоять ті ціни, які приїхали з картки або зі сторінки розділу, а не найнижчі з пропозицій продавців.
Межі одного прогону
- Сторінка розділу Kaspi — 12 товарів. Програма бере зі сторінки число товарів у розділі, ділить на 12 і заводить завдання на кожну сторінку.
- Пропозиції продавців — до 60 на товар, одним запитом. Друга порція не запитується.
- Пачка — 100 адрес, 10 одночасних запитів. Так іде прогін, який ви запустили самі; на одну сторінку відводиться 35 секунд.
- Повторів — 5. Сторінка, яка не відкрилася або віддала порожню відповідь, ставиться в чергу знову; після п'ятої спроби завдання закривається як невиконане. Сторінка із заглушкою майданчика закривається після третьої спроби.
- Один виклик робить не більше 15 кіл по черзі завдань, далі роботу підхоплює фонове завдання. Загальна межа часу на прогін — 72 години.
Стелі за кількістю товарів у модуля немає: скільки позицій у розділах зі «Списку посилань», стільки він і візьме.
Вікно журналу можна закрити: сторінки завантажує сервер Elbuz, а не ваш браузер, і від закриття вікна прогін не спиняється. Так буде, поки в акаунті підключений серверний парсинг; без нього сторінки качає розширення Chrome, і вікно має лишатися відкритим.
Скільки коштує прогін
Одиниця, за яку рахують, — один запит сторінки. Сторінка розділу, картка товару й запит пропозицій продавців — це три різні запити, і кожен рахується окремо. Товар, узятий у швидкому режимі зі сторінки розділу, окремого запиту не коштує: у цьому режимі один запит дає цілу сторінку позицій.
Скільки коштує запит, залежить від того, як сервер завантажує сайт. Режим вибирають на вкладці «Додатково», поле «Як сервер завантажує цей сайт»; у Kaspi стоїть «Через проксі (звичайний серверний режим)». Той самий режим програма пише рядком у журнал прогону — той, що видно у вікні «Завантаження даних із сайту», — «Режим завантаження сторінок: серверний проксі», тож здогадуватися не треба.
- «Напряму, без проксі» — не тарифікується взагалі.
- «Через проксі (звичайний серверний режим)» — тарифікується поштучно. За фіксованої місячної ціни цей режим у неї входить, поки не вибрана місячна квота запитів.
- «Через сервіс обходу захистів» — оплачується окремо за будь-якого тарифу, з першого запиту.
З балансу витрата не списується тієї ж миті: кожен запит лягає окремим рядком у чергу витрат, а списання робить окреме фонове завдання платформи — воно підсумовує накопичені рядки й знімає суму одним рухом. Підсумок видно у вікні «Баланс і тарифи»: там витрати розкладені по місяцях і типах операцій.
Якщо грошей не вистачить посеред роботи, поведінка різна. У звичайному серверному режимі перевірки балансу перед прогоном немає: прогін іде, а витрата списується пізніше. У режимі обходу захистів перевірка є — перед кожною пачкою програма звіряє баланс із ціною одного запиту і, якщо не вистачає, зупиняється й пише в журнал: «Преміум-парсинг (обхід захистів) зупинено: недостатньо коштів на балансі. Поповніть баланс, щоб продовжити.» Завдання при цьому лишаються в черзі — після поповнення їх доробить «Продовжити».
Куди зібране їде далі
Прогін кінчається на рядках прайс-листа. У картки товарів вашого каталогу, а тим паче на вітрину, з Kaspi саме собою нічого не потрапляє: завершальні операції прогону чіпають тільки таблиці прайсу.
- Зіставте товари прайсу з товарами базового каталогу. Поки рядок прайсу не прив'язаний до товару каталогу, оновлювати нічого.
- Запустіть оновлення базового каталогу — вікно «Оновлення базового каталогу», кнопка «Оновити». Саме цей крок переносить ціну й решту полів із прайсу в картку товару.
Є один випадок, коли другий крок відбувається сам: у загальних налаштуваннях є перемикач «Оновлювати каталог після завантаження» — він спрацьовує, коли завантажено всі прайси за розкладом або кнопкою запуску всіх прайсів. Коли він увімкнений, а в цей момент іще працює парсинг, оновлення каталогу відкладається й стартує тільки після того, як у журналі не лишиться жодного незавершеного завдання. Прогін одного джерела кнопкою «Почати завантаження» цього ланцюжка не запускає.
Далі з каталогу на сайт дані везе вивантаження — ще один окремий крок зі своїм розкладом.
Вимкнути джерело чи видалити
У картці джерела є прапорець «Прайс активний (бере участь у спільній обробці)». Знята галочка означає рівно одне: джерело перестає потрапляти у спільні прогони й зведені розрахунки, які беруть тільки активні прайси. Зібране нікуди не дінеться — товари, ціни, «Список продавців», «Список посилань» і всі налаштування лишаються на місці, і галочка повертає все як було.
Чого зняття активності не робить — не спиняє розклад. Завдання розкладу живе окремо (кнопка «Налаштування розкладу» на вкладці «Додатково») і має власний прапорець «Активність». Поки він увімкнений, джерело оновлюватиметься за розкладом, навіть якщо сам прайс позначений неактивним. Щоб прогіни справді припинилися, зніміть активність або видаліть саме завдання розкладу.
Видалення джерела — дія іншого масштабу й незворотна: разом із джерелом видаляються його налаштування, правила, націнки, список посилань, «Список продавців» і всі зібрані товари. Сам модуль Kaspi при цьому лишається — він системний, і на ньому можна завести джерело заново, але вже порожнє.
Kaspi як джерело описів для вашого каталогу
Другий спосіб використати модуль — не прайс, а наповнення карток. У підсистемі пошуку описів Kaspi шукає товар за назвою, і робить це не через звичайний рядок пошуку сайту, а через службову адресу майданчика, яка віддає результати одразу даними. Це стабільніше: розмітка сторінки пошуку змінюється часто, дані — рідко.
Порядок роботи з пошуком описів той самий, що й для інших джерел, і описаний окремо — у статті про парсинг сайтів. Kaspi тут просто один із варіантів у списку.
Чого модуль не робить
- Не заходить у ваш кабінет продавця. Він читає публічні сторінки, тому бачить рівно те, що й покупець: ваші залишки, комісії й замовлення через нього не доступні — для цього є окреме підключення за токеном.
- Не збирає відгуки й відео. Розбору відгуків у модулі немає взагалі, а збирання відео вимкнене прапорцем у його налаштуваннях.
- Не тягне характеристики окремим проходом. Вони приїжджають тільки разом із карткою товару.
- Не оновлює ціни на самому Kaspi. Це збір даних, а не керування вашим магазином на майданчику.
Сценарії
Стежити за цінами по цілому розділу Kaspi
Налаштування. На вкладці «Список посилань» — адреси розділів каталогу, прапорець «Це посилання на товар» знятий. На вкладці «Додатково» прапорець «Завантажувати товари та ціни без відкриття картки» лишається увімкненим — у модуля Kaspi так стоїть за замовчуванням.
Що вийде. Програма бере зі сторінки розділу число товарів, ділить на 12 і обходить сторінки розділу до останньої. З кожної сторінки в прайс лягають назва, ціна зі списку розділу, адреса товару, ланцюжок категорій, код товару на Kaspi й одне фото.
Чого не буде. Картки не відкриваються, тому немає характеристик, опису, решти фото й пропозицій продавців. Нових магазинів у «Список продавців» не додасться, а ціна в рядку — та, що показана в списку розділу: вибирати найнижчу ціну продавця програмі нема з чого.
Бачити всіх продавців конкретного товару
Налаштування. На вкладці «Додатково» зніміть «Завантажувати товари та ціни без відкриття картки» і впишіть свій код у «ID міста (код, назва)». На вкладці «Список посилань» дайте адреси карток із прапорцем «Це посилання на товар». Адреси розділів теж підійдуть — тоді програма візьме з них посилання на картки й відкриє кожну.
Що вийде. Код міста програма дописує до адреси кожної сторінки Kaspi й передає в запит пропозицій. З картки приїжджають назва, ціна, категорії, фото й характеристики, а пропозиції продавців — ціна, магазин, строк доставки — лягають у «Список продавців». Наприкінці прогону рядок товару отримує найнижчу ціну серед пропозицій і назву магазину, який її дає.
Чого не буде. Сторінки з модифікаціями пропускаються й рядка не дають. Коли таблиці продавців на сторінці немає і програма запитує пропозиції окремо, приходить не більше 60 пропозицій на товар — другої порції вона не просить.
Рахувати ціну тільки по магазинах, яким ви довіряєте
Налаштування. На вкладці «Список продавців» поставте галочки в колонках: «Чорний список» — магазинам, чиї ціни не потрібні; «Білий список» — якщо ціна має братися тільки від кількох конкретних магазинів; «Джерело ціни» — якщо пропозиції решти мають лишитися в прайсі, але найнижчу ціну треба вибирати лише серед відзначених.
Що вийде. Наприкінці наступного прогону пропозиції магазинів із «Чорний список» видаляються; якщо хоч один магазин стоїть у «Білий список», видаляються пропозиції всіх інших. Потім програма вибирає найнижчу ціну — серед магазинів із «Джерело ціни», якщо такі є, або серед усіх, що лишилися, — і записує її в рядок товару разом із назвою магазину.
Чого не буде. Ціна в уже зібраних рядках від самої галочки не зміниться: прапорці продавців діють тільки в завершальних операціях прогону.
Доповнювати прайс новими товарами, не втрачаючи ручних правок
Налаштування. На вкладці «Додатково», у групі «Обробка даних», зніміть «Видаляти товари перед завантаженням». Прапорець «Завантажувати товари та ціни без відкриття картки» при цьому знятий, а в «Списку посилань» — розділи або картки, серед яких є нові товари.
Що вийде. Перед прогоном програма записує адреси всіх наявних товарів прайсу в журнал парсингу як уже оброблені, і завдання на ці адреси вдруге не заводяться. Відкриваються тільки картки, яких у прайсі ще не було, і вони лягають новими рядками. Старі рядки з вашими правками лишаються.
Чого не буде. Характеристики, фото й назви в старих рядках із Kaspi не оновляться — їхні картки програма не відкриває. Виняток — ціна: наприкінці прогону кожному товару, в якого є зібрані пропозиції продавців, проставляється найнижча з них, тож ручна ціна в такому рядку не встоїть.
Розбір частих проблем
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| Ціни відрізняються від тих, що на сайті | не задане місто — програма працює з кодом 750000000 | впишіть свій код у поле «ID міста (код, назва)» на вкладці «Додатково» і запустіть прогін заново |
| Продавців немає, ціна одна | увімкнений режим «Завантажувати товари та ціни без відкриття картки» — таблиця продавців живе тільки в картці | зніміть прапорець на вкладці «Додатково» |
| Немає характеристик і опису | та сама причина: картки не відкривалися | зніміть той самий прапорець |
| Замість сторінок приїжджає пропозиція зареєструватися | майданчик вирішив, що це не людина, і показав заглушку; програма таку сторінку впізнає й не розбирає її як товар | зменшіть навантаження: рознесіть прогони в часі |
| Частина товарів пропущена | це сторінки з модифікаціями — вони пропускаються навмисно | нічого; потрібні конкретні модифікації — додайте їхні адреси на вкладку «Список посилань» із прапорцем «Це посилання на товар» |
| Змінив налаштування — змінилися в іншого джерела | налаштування модуля спільні для всіх джерел, що на ньому сидять | заведіть окреме джерело на універсальному парсері, якщо потрібні різні налаштування |
| Після повторного прогону зникли мої правки в рядках прайсу | у модуля Kaspi прапорець «Видаляти товари перед завантаженням» увімкнений, і прогін починається з видалення всіх товарів прайсу | зніміть прапорець на вкладці «Додатково» — тоді старі рядки не чіпаються, але й не оновлюються (повторний прогін) |
| Ціна в рядку прайсу не та, що я вписав руками | наприкінці кожного прогону ціною товару стає найнижча з цін його продавців | нічого; ручна ціна тут тримається лише до кінця найближчого прогону |
| Прогін обірвався на середині | закрили вкладку, пропала мережа, майданчик віддав заглушку | натисніть «Продовжити», а не «Почати завантаження»: друга кнопка видалить зібране й почне спочатку (запуск і обрив) |
| У прайсі є ціни, а в картках базового каталогу старі | прогін кінчається на рядках прайсу, у каталог він нічого не пише | зіставте товари й запустіть оновлення базового каталогу |
| Зняв «Прайс активний», а джерело все одно оновлюється | активність прайсу й активність завдання розкладу — різні перемикачі | зніміть активність у самому завданні розкладу (вимкнути чи видалити) |
Часті питання
Чи потрібен акаунт продавця на Kaspi, щоб увімкнути парсер?
Ні. Модуль читає публічні сторінки майданчика, тому працює й тоді, коли ви на Kaspi нічого не продаєте, а лише дивитеся на ціни. Акаунт і токен потрібні для іншого завдання — забирати власні замовлення, і це окреме підключення.
Де взяти код міста?
Це внутрішній код міста самого Kaspi. Якщо поле лишити порожнім, програма працюватиме з кодом 750000000. Найпростіший спосіб перевірити, чи той код ви вписали, — звірити ціну однієї картки з тим, що показує kaspi.kz, коли у верхньому куті сайту вибране ваше місто.
Скільки продавців збирається з одного товару?
Коли пропозиції запитуються у майданчика напряму, вони приходять порцією до 60 на товар. Для переважної більшості позицій цього з запасом вистачає: стільки магазинів на одну картку трапляється рідко.
Яка саме ціна потрапляє в товар прайс-листа?
Найнижча з цін продавців, а поруч записується назва магазину, який її дає. Решта пропозицій нікуди не зникає — вони лежать у вкладці «Список продавців».
Чому збір іде повільно?
Кожна картка товару — це окреме звернення до чужого сайту, і швидкість обмежена саме цим. Якщо потрібні тільки ціни, увімкніть «Завантажувати товари та ціни без відкриття картки»: тоді один запит дає цілу сторінку розділу замість десятків запитів на картки.
Чи можна оновлювати ціни автоматично?
Так. На вкладці «Додатково» є кнопка налаштування розкладу — джерело оновлюватиметься само, без відкритого вікна. Поруч там же лежать «Журнал парсингу», де видно долю кожної сторінки, і «Список проксі серверів».
Чи можна закрити вікно, поки йде завантаження?
Так, якщо в акаунті підключений серверний парсинг: сторінки качає сервер Elbuz, і від закриття вікна прогін не спиняється. Незавершені завдання підхопить фонове завдання продовження парсингу. Без серверного парсингу сторінки завантажує розширення Chrome, і тоді вікно має лишатися відкритим.
Що буде з моїми правками в прайсі після повторного прогону?
За налаштуваннями модуля Kaspi прогін починається з видалення всіх товарів прайсу, тож правлений рядок зникає разом з усіма іншими, а прайс наповнюється наново. Якщо зняти прапорець «Видаляти товари перед завантаженням», старі рядки вціліють, але з Kaspi більше не оновлюватимуться — програма їх просто не відкриває. Ціна — виняток: наприкінці кожного прогону їй проставляється найнижча з цін продавців.
Суміжні теми
- Парсинг сайтів — загальна механіка: як влаштований обхід, запуск, розклад і журнал. Усе це однакове для готових модулів і для універсального парсера.
- Імпорт замовлень з Kaspi.kz через API — інше завдання: забрати свої замовлення з кабінету продавця.
- Аналітика джерел — коли джерел кілька, тут видно, у кого дешевше й хто підводить.
- Історія ціни товару — як подивитися, що відбувалося з ціною від прогону до прогону.

