~/ecommerce/woocommerce-scraper

WooCommerce スクレイパー — 商品・価格・在庫・レビュー

任意のWooCommerceストアから商品、バリエーション、カテゴリ、カスタマーレビューを取得します。ドメインを渡すだけでカタログを見つけ、ストアがJSON APIを無効にしていても取得できます。

総合 TypeScriptCheerio グローバル
proooxy/woocommerce-scraper — スペック
カテゴリecommerce / 総合
言語TypeScript
スタックTypeScript, Cheerio
マーケットグローバル
出力クリーンでRAG対応のJSON

主な機能

ドメインだけで十分——Actorが自力でカタログを見つけます

JSON APIが無効化・ファイアウォールで遮断されたストアでも動作

バリエーション商品はすべての組み合わせを取得し、それぞれに SKU・価格・在庫状態が付きます

カスタマーレビューは評価・投稿者・日付を含む独立レコードとして保存

価格は最小通貨単位で保持し、ストア自身の表示文字列も併記するため、計算で丸め誤差が出ません

ストアごとの上限を設定でき、複数ストア実行で大きなカタログが他を食い潰しません

全カタログ巡回だけでなく、実行対象の各ストアに対するキーワード検索にも対応

既定の並列数は控えめ — WooCommerce ストアの多くは自己ホストの小規模 WordPress サイトです

活用例

  • 独立系 WooCommerce 店舗の価格・品揃えモニタリング
  • どのマーケットプレイスにも載らない小規模店舗のロングテールから商品データベースを構築
  • 競合が Shopify ではなく WordPress を使っている場合の競合調査
  • レビュー分析による商品評価と評点分布の把握
  • 比較サイト・マーケットプレイス・購買エージェントへの商品データ供給
  • 流通・再販チェックのための在庫と入手可能性の追跡

入力パラメータ

パラメータ型必須説明
domainsarray任意ドメインを1行に1つ — もっとも簡単な指定方法です
startUrlsarray任意任意の WooCommerce ストア URL:ストアのルート、カテゴリページ、タグページ、単一商品ページ
maxProductsinteger任意実行全体で保存する商品レコード数
maxProductsPerStoreinteger任意ストアごとの上限。大きなカタログが予算を独占しないようにします
includeVariationsboolean任意バリエーション商品のすべての組み合わせを取得(SKU・価格・在庫付き)
includeReviewsboolean任意カスタマーレビューを評価・投稿者・日付付きの独立レコードとして保存
querystring任意実行対象の各ストアルート/ドメインに適用する検索語
allowHtmlFallbackboolean任意JSON API が無効化・遮断されたストアで HTML フォールバックを許可
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}

ヒント

まず1ドメイン・小さめの上限で。 100件もあれば、そのストアがどの経路を公開しているか、レコードがどれだけ揃うかが分かります。 複数ストア実行では maxProductsPerStore を設定。 設定しないと、最初の大規模カタログが他店舗に届く前に予算を使い切ります。 レビューは必要なときだけ有効化。 別レコード・別課金であり、価格監視用途では通常不要です。 HTML フォールバックは有効のままに。 閉じたストアを取得できるのはこの経路のためで、実行ごとの上限でコストは抑えられます。

よくある質問

ストアが JSON API を無効にしている場合は?
それこそがこのActorの想定する一般的なケースです。状況を検出したうえでカタログを取得するので、閉じられたストアでも商品が返ります。
そのサイトが本当に WooCommerce かどうかは?
ドメインをActorに渡して判断を任せてください——判定は実行の一部です。
バリエーションは別レコードですか?
いいえ。1レコードが1商品で、バリエーションは variants に入れ子となり、それぞれ SKU・価格・在庫状態を持ちます。レビューを有効にした場合のみ、別レコードになります。

~/ecommerce の関連ツール

WooCommerce スクレイパー — 商品・価格・在庫・レビューを実行、またはカスタム開発を依頼

数分でApify上での抽出を開始できます。または、あなたの取得元とスキーマに合わせたオーダーメイドのスクレイパーとRAGパイプラインの構築を依頼できます。

Apifyで実行 カスタムデータを依頼