~/ecommerce/woocommerce-scraper

Скрапер WooCommerce — товары, цены, остатки и отзывы

Собирает товары, вариации, категории и отзывы покупателей из любого магазина WooCommerce. Достаточно домена — Actor сам найдёт каталог, даже если у магазина отключён JSON API.

общее TypeScriptCheerio Весь мир
proooxy/woocommerce-scraper — характеристики
категорияecommerce / общее
языкTypeScript
стекTypeScript, Cheerio
рынкиВесь мир
выводчистый JSON, готовый к RAG

ключевые возможности

Достаточно домена — Actor сам находит каталог

Работает и в магазинах, где JSON API отключён или закрыт файрволом

Каждая вариация вариативного товара — со своим артикулом, ценой и статусом наличия

Отзывы покупателей отдельными записями: оценка, автор, дата

Цены в минимальных единицах валюты плюс собственное форматирование магазина, поэтому арифметика не округляет неверно

Лимиты на магазин, чтобы один крупный каталог не вытеснил остальные в мультимагазинном запуске

Поиск по ключевому слову в каждом магазине запуска, а не только полный обход каталога

Осторожная параллельность по умолчанию — большинство магазинов WooCommerce это небольшие self-hosted WordPress

сценарии использования

  • Мониторинг цен и ассортимента независимых продавцов на WooCommerce
  • Сбор каталога из длинного хвоста небольших магазинов, которых нет ни на одном маркетплейсе
  • Конкурентная разведка, когда конкурент работает на WordPress, а не на Shopify
  • Анализ отзывов: восприятие товара и распределение оценок
  • Поставка товарных данных в сравнилки, маркетплейсы и покупательских агентов
  • Отслеживание остатков и доступности для проверок дистрибуции и реселлеров

входные параметры

ПараметрТипОбязательныйОписание
domainsarrayопциональноДомены по одному в строке — самый простой способ указать магазин
startUrlsarrayопциональноЛюбой URL WooCommerce: корень магазина, категория, страница метки или отдельный товар
maxProductsintegerопциональноСколько товарных записей сохранить за весь запуск
maxProductsPerStoreintegerопциональноЛимит для каждого магазина, чтобы крупный каталог не съел весь бюджет
includeVariationsbooleanопциональноЗабирать все вариации вариативных товаров — с артикулом, ценой и остатком
includeReviewsbooleanопциональноСохранять отзывы покупателей отдельными записями с оценкой, автором и датой
querystringопциональноПоисковый запрос, применяемый к каждому корню магазина или домену в запуске
allowHtmlFallbackbooleanопциональноРазрешить откат к HTML для магазинов с отключённым или закрытым JSON API
proxyobjectопциональноНастройки прокси; скрапер усиливает их только там, где магазин этого требует

Пример вывода

 1{
 2  "source": {
 3    "id": "1251",
 4    "canonicalUrl": "https://www.shoprootscience.com/shop/sample-kit",
 5    "retailer": "shoprootscience.com",
 6    "language": "en",
 7    "currency": "USD"
 8  },
 9  "title": "Sample Kit",
10  "brand": "",
11  "categories": ["Samples"],
12  "price": {
13    "current": 2000,
14    "currentFormatted": "$20.00",
15    "previous": 2000,
16    "stockStatus": "InStock",
17    "stockCount": 0
18  },
19  "stats": { "rating": 4.75, "reviewCount": 4 },
20  "options": [
21    { "type": "Sample 1", "values": [
22      { "id": "Bare Facial Serum", "name": "Bare Facial Serum" },
23      { "id": "Youth Facial Serum", "name": "Youth Facial Serum" }
24    ] }
25  ],
26  "variants": [
27    { "sku": "SK-BARE", "price": { "current": 2000, "currentFormatted": "$20.00", "stockStatus": "InStock" } }
28  ]
29}

Советы

Начните с одного домена и небольшого лимита. Ста товаров достаточно, чтобы понять, какой источник открыт у магазина и насколько полные записи. В мультимагазинных запусках задавайте maxProductsPerStore. Иначе первый крупный каталог израсходует бюджет до того, как дойдёт очередь до остальных. Отзывы включайте осознанно. Это отдельные записи и отдельная тарификация, а для мониторинга цен они обычно не нужны. Оставьте откат к HTML включённым. Именно он делает закрытые магазины доступными, а лимит на запуск удерживает стоимость.

частые вопросы

Что если у магазина отключён JSON API?
Это типичный случай, под который сделан этот Actor. Он распознаёт ситуацию и всё равно собирает каталог, так что и закрытый магазин отдаёт товары.
Как понять, что сайт действительно на WooCommerce?
Укажите домен и дайте Actor решить — определение входит в запуск.
Вариации — это отдельные записи?
Нет. Одна запись это один товар, вариации вложены в variants, у каждой свой артикул, цена и статус наличия. Отдельными записями становятся только отзывы, если они включены.

похожие в ~/ecommerce

Запустите Скрапер WooCommerce — товары, цены, остатки и отзывы или закажите разработку под задачу

Начните извлекать данные на Apify за считаные минуты или закажите у меня разработку парсера на заказ и RAG-конвейера под ваш источник и схему.

запустить на Apify заказать данные