Парсер Kaspi.kz: ціни продавців і картки товарів

8 хв

Парсер Kaspi.kz — готовий модуль Elbuz, який забирає зі сторінок маркетплейсу товари, їхні ціни й характеристики. Головне, заради чого його вмикають: на Kaspi той самий товар продають десятки магазинів, і модуль збирає ціну кожного продавця окремо — з назвою магазину, його рейтингом і строком доставки. Ви бачите не «ціну на Kaspi», а весь список пропозицій і своє місце в ньому.

Не плутайте з імпортом замовлень з Kaspi.kz: там ви підключаєте свій кабінет продавця за токеном і забираєте свої замовлення. Тут нічого підключати не треба — модуль читає публічні сторінки майданчика, як їх бачить будь-який покупець. Ці два підключення живуть окремо й не заважають одне одному.

Де це у програмі

Окремого вікна «Kaspi» в меню немає. Модуль — це тип джерела у списку прайс-листів, і всі його налаштування відкриваються звідти.

Меню
Довідники → Обробка прайс-листів → Список прайс-листів
Створити
майстер підключення → крок «Звідки» → блок «Готові парсери» → плитка «Kaspi» → «Далі»
Налаштувати
виберіть рядок джерела у списку → кнопка «Налаштування» у шапці правої панелі
Майстер створення джерела — крок «Звідки», обрано готовий парсер Kaspi
1Готові парсери
2Kaspi
3Далі
  1. Готові парсери — майданчики, правила розбору яких вже вбудовані в програму: обирайте з готового списку, а не вказуйте селектори вручну.
  2. Плитка «Kaspi» — з неї починається збір цін продавців маркетплейсу.
  3. Для готового модуля кнопка «Далі» лише прив'язує джерело до системного парсера й відкриває налаштування — назовні програма поки не звертається.

Kaspi лежить саме в блоці «Готові парсери» — це модулі, майданчики яких ми підтримуємо самі. Селекторів писати не треба: правила розбору сторінок Kaspi зашиті всередину програми й оновлюються разом із нею. Тому у вікна налаштувань цього джерела лише три вкладки — «Список посилань», «Список продавців» і «Додатково». Вкладок «Налаштування завантаження» та «Тестування завантаження», якими налаштовують універсальний парсер, тут немає взагалі.

Вікно «Налаштування завантаження даних із сайту» з рядом вкладок
1Список посилань
2Список продавців
3Додатково
  1. Список посилань — сюди вписують адреси розділів або карток, з яких починається обхід сайту.
  2. Список продавців — ціни магазинів, які продають цей товар на майданчику.
  3. Додатково — місто, обмеження та розклад завантаження.

Як завести джерело

Порядок такий самий, як у будь-якого джерела: майстер питає, від кого дані («Хто»), і звідки їх брати («Звідки»). На кроці «Хто» ви або обираєте наявного контрагента, або вписуєте назву — наприклад, «Kaspi, конкуренти». На кроці «Звідки» знаходите плитку «Kaspi» серед готових парсерів і тиснете «Далі».

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

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

Список посилань: з чого починається обхід

Вкладка «Список посилань» — це перелік стартових адрес. Сюди вписують або адреси розділів каталогу Kaspi, або адреси конкретних карток товару. Для кожного рядка є прапорець «Це посилання на товар»: з ним адреса йде одразу в розбір картки, без нього вважається сторінкою розділу, з якої треба зібрати посилання на товари.

Скільки брати з розділу — задають на вкладці «Додатково» двома полями: «Макс. кількість сторінок із категорії» і «Макс. кількість товарів із категорії». Нуль в обох означає «без обмеження», і для першого знайомства з майданчиком це зазвичай не те, чого ви хочете: у великому розділі Kaspi тисячі позицій, а кожна сторінка — це окреме звернення до сайту.

Ціни продавців: заради чого це роблять

Kaspi влаштований як вітрина, за якою стоять різні магазини. Відкриваєте картку товару — під нею таблиця пропозицій: хто продає, почому й за скільки днів привезе. Саме цю таблицю модуль і збирає.

Для кожної пропозиції в Elbuz потрапляють: ціна, назва продавця, його рейтинг на майданчику й строк доставки. Додатково програма складає для кожного продавця два посилання — на його картку на Kaspi й на сторінку його відгуків, — тож перевірити магазин можна одним кліком, не шукаючи його вручну.

Зібрані пропозиції лягають у вкладку «Список продавців» вікна налаштувань. Це не просто довідник: у товару прайс-листа ціною стає найнижча з цін продавців, а назва магазину з цією ціною записується поруч. Тобто після прогону ви дивитесь у звичайний список товарів прайсу й бачите, почому цей товар зараз можна купити на Kaspi й у кого.

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

Місто: чому ціни приходять не ті, що ви бачите

Ціни й доставка на Kaspi залежать від міста. Той самий товар у двох містах коштує по-різному, і список продавців теж відрізняється — не всі магазини возять усюди. Тому у модуля є поле «ID міста (код, назва)» на вкладці «Додатково».

Поле порожнє за замовчуванням. Порожнє означає не «будь-яке місто», а конкретне: програма підставляє код 750000000. Якщо ваші покупці в іншому місті, ціни в Elbuz будуть системно відрізнятися від тих, які ви бачите у своєму браузері, — і різниця буде тим помітніша, чим важчий товар.

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

Вкладка «Додатково» — поля міста, доставки та обмежень парсингу
1ID міста (код, назва)
2Вартість доставки
3Макс. кількість сторінок із категорії
  1. ID міста (код, назва) — порожнє поле означає не «будь-яке місто», а код 750000000, і ціни приїдуть саме для нього.
  2. Вартість доставки — власне значення додається до ціни, щоб порівнювати пропозиції чесно.
  3. Макс. кількість сторінок із категорії — нуль означає «без обмеження», для першого знайомства це не те, що потрібно.

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

Швидкий режим: прайс розділу без відкриття карток

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

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

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

Звідси просте правило. Треба стежити за цінами по широкому асортименту — лишайте прапорець увімкненим. Треба бачити всіх продавців конкретного товару або наповнювати картки каталогу — знімайте прапорець і дайте адреси товарів на вкладці «Список посилань».

Що приїжджає з картки товару

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

Сторінки товарів із модифікаціями програма пропускає свідомо. На Kaspi це сторінка-обгортка, за якою стоять різні позиції з різними цінами, і взяти з неї одну ціну означало б записати неправду. Такі адреси просто не дають рядка — їх у результаті не буде, і це не помилка обходу.

Kaspi як джерело описів для вашого каталогу

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

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

Чого модуль не робить

  • Не заходить у ваш кабінет продавця. Він читає публічні сторінки, тому бачить рівно те, що й покупець: ваші залишки, комісії й замовлення через нього не доступні — для цього є окреме підключення за токеном.
  • Не збирає відгуки й відео. Обидва вимкнені в налаштуваннях модуля.
  • Не тягне характеристики окремим проходом. Вони приїжджають тільки разом із карткою товару.
  • Не оновлює ціни на самому Kaspi. Це збір даних, а не керування вашим магазином на майданчику.

Розбір частих проблем

Що ви бачитеЧому такЩо зробити
Ціни відрізняються від тих, що на сайтіне задане місто — програма працює з кодом 750000000впишіть свій код у поле «ID міста (код, назва)» на вкладці «Додатково» і запустіть прогін заново
Продавців немає, ціна однаувімкнений режим «Завантажувати товари та ціни без відкриття картки» — таблиця продавців живе тільки в картцізніміть прапорець на вкладці «Додатково»
Немає характеристик і описута сама причина: картки не відкривалисязніміть той самий прапорець
Замість сторінок приїжджає пропозиція зареєструватисямайданчик вирішив, що це не людина, і показав заглушку; програма таку сторінку впізнає й не розбирає її як товарзменшіть навантаження: обмежте сторінки й товари з категорії, рознесіть прогони в часі
Частина товарів пропущенаце сторінки з модифікаціями — вони пропускаються навмиснонічого; потрібні конкретні модифікації — додайте їхні адреси на вкладку «Список посилань» із прапорцем «Це посилання на товар»
Змінив налаштування — змінилися в іншого джереланалаштування модуля спільні для всіх джерел, що на ньому сидятьзаведіть окреме джерело на універсальному парсері, якщо потрібні різні налаштування

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

Чи потрібен акаунт продавця на Kaspi, щоб увімкнути парсер?

Ні. Модуль читає публічні сторінки майданчика, тому працює й тоді, коли ви на Kaspi нічого не продаєте, а лише дивитеся на ціни. Акаунт і токен потрібні для іншого завдання — забирати власні замовлення, і це окреме підключення.

Де взяти код міста?

Це внутрішній код міста самого Kaspi. Якщо поле лишити порожнім, програма працюватиме з кодом 750000000. Найпростіший спосіб перевірити, чи той код ви вписали, — звірити ціну однієї картки з тим, що показує kaspi.kz, коли у верхньому куті сайту вибране ваше місто.

Скільки продавців збирається з одного товару?

Коли пропозиції запитуються у майданчика напряму, вони приходять порцією до 60 на товар. Для переважної більшості позицій цього з запасом вистачає: стільки магазинів на одну картку трапляється рідко.

Яка саме ціна потрапляє в товар прайс-листа?

Найнижча з цін продавців, а поруч записується назва магазину, який її дає. Решта пропозицій нікуди не зникає — вони лежать у вкладці «Список продавців».

Чому збір іде повільно?

Кожна картка товару — це окреме звернення до чужого сайту, і швидкість обмежена саме цим. Якщо потрібні тільки ціни, увімкніть «Завантажувати товари та ціни без відкриття картки»: тоді один запит дає цілу сторінку розділу замість десятків запитів на картки.

Чи можна оновлювати ціни автоматично?

Так. На вкладці «Додатково» є кнопка налаштування розкладу — джерело оновлюватиметься само, без відкритого вікна. Поруч там же лежать «Журнал парсингу», де видно долю кожної сторінки, і «Список проксі серверів».

Суміжні теми

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