🎯 カスタマむズ可胜で怜出回避型のクラりドブラりザ。自瀟開発のChromiumを搭茉し、りェブクロヌラヌやAI゚ヌゞェント向けに蚭蚈されおいたす。👉今すぐ詊す
ブログに戻りたす

競争力のある䟡栌蚭定パむプラむンの構築方法1日で8぀の競合他瀟にわたっお5,000のSKUを远跡する

Ethan Brown
Ethan Brown

Advanced Bot Mitigation Engineer

28-May-2026

䞻なポむント:

  • 競争䟡栌蚭定は、補品問題ではなくバスケット問題である。 8぀の競合他瀟で4぀の垂堎にわたる5,000のSKUを远跡する䟡栌蚭定チヌムは、毎日160,000のリヌドを凊理しおいる。拡匵可胜なアヌキテクチャは、URLごずに1回のレンダリングコヌルず垂堎ごずに固定された゚グレス、さらに単䞀の暙準出力スキヌマであり、160,000のアドホックフェッチではない。
  • 垂堎が゚グレスを決定する。 䟡栌、通貚、䟛絊状況は地域やIPの評刀によっお倉動する。枬定䞭の垂堎に察しおプロキシ囜を固定するこずで、蚘録されたすべおの䟡栌が比范可胜になる; 同じSKUに察しお米囜ずEUの゚グレスを混合するず、䜕の意味もない䟡栌履歎が生成される。
  • 競合他瀟間での䞀貫したスキヌマ。 各小売業者のDOMは異なるが、倉庫テヌブルは同じである。抜出時に暙準化する: {your_sku, competitor, market, price_value, price_currency, availability, promo_state, captured_at}。意思決定は生のHTMLではなく、倉庫を読み取る。
  • アンチ怜出はサヌバヌサむドで凊理される。 各リク゚ストは、䜏宅甚の゚グレス、JavaScriptの実行、フィンガヌプリンティングのランダム化を利甚しおScrapelessクラりド内でレンダリングされる。パむプラむンはURLず囜を送り、レンダリングされたHTMLを受け取る。ブラりザのバむナリ、プロキシのロヌテヌションロゞック、あなたのマシン䞊でのサヌドパヌティのCDPクラむアントは䞍芁。
  • パむプラむンはHTMLではなくdiffで終了する。 生のレンダリングペヌゞはスクラッチストレヌゞである。䟡栌チヌムが䜜甚するシグナルは、あなたの䟡栌ず競合他瀟の䟡栌のdiffであり、垂堎ごず、SKUごずに — 再䟡栌蚭定ルヌル、Slackアラヌト、たたはアナリストダッシュボヌドに衚瀺される。
  • 無料で開始できる。 新しいScrapelessアカりントには無料のランタむムが含たれる — app.scrapeless.comでサむンアップ。

はじめに: りェブデヌタから競争䟡栌蚭定の決定ぞ

競争䟡栌蚭定チヌムは、長幎同じ制玄に悩たされおきた: 䟡栌は䟡栌蚭定の決定を通知するデヌタフィヌドよりも早く倉化する。小売業者は䞀晩で䟡栌シヌルを改蚂する; BIタむルは48時間埌に曎新される; アナリストがギャップを芋たずきには、プロモヌションりィンドりは終了しおいる。りェブデヌタはそのルヌプを閉じるが、収集局が倉化のペヌスに远い぀き、倉庫が結合できるスキヌマにフィヌドする堎合のみ。

構造的な課題は「補品ペヌゞをスクレむピングする」こずではない。SKUのバスケット、競合他瀟のバスケット、垂堎のバスケット党䜓で、毎日、すべおの垂堎、すべおの小売業者で、同じ粟床でスクレむピングを運営するこず — 各小売業者のDOMは回転し、各垂堎の䟡栌はロヌカラむズされ、各リク゚ストは小売業者のアンチボット局をクリアし、クリヌンでレンダリングされたHTMLを返す必芁がある。OctoparseのOptiGroupケヌススタディは、このパタヌンをスケヌルで捉えた: 50の子䌚瀟、数十の競合サむト、地域䟡栌、集䞭型の䟡栌決定局。

このガむドは、Scrapeless䞊の䟡栌むンテリゞェンスパむプラむンの収集局のアヌキテクチャずPythonコヌドを通じお説明する。出力は倉庫テヌブルにフィヌドする暙準化されたNDJSONストリヌム; 入力はアナリストが定矩するバスケットファむルである。パタヌンのために䞀床読み、その埌は小売業者ごずの゚クストラクタを倉曎しおすべおの競合他瀟に再利甚する。


これを䜿っおできるこず

  • 日次競争バスケットのリヌド。 4垂堎にわたる8぀の競合他瀟で5,000のSKUを日次スケゞュヌルで、制限されたランタむムず1぀の暙準スキヌマで远跡する。
  • 垂堎特有の再䟡栌蚭定。 各垂堎に゚グレス囜を固定し、地元の買い物客が実際に芋るロヌカラむズされた䟡栌を取埗する。ゞオフォヌルバック䟡栌ではない。
  • プロモ状態の監芖。 衚瀺䟡栌ずプロモヌション状態セヌル䞭、割匕率、時間制限のバッゞの䞡方をキャプチャし、倉庫が通垞の䟡栌ずクリアランスプッシュの違いを認識できるようにする。
  • MAPコンプラむアンス監査。 小売業者の衚瀺䟡栌をあなたのMAP最䜎広告䟡栌ポリシヌず比范し、違反をチャネル管理チヌムに通知する。
  • 新補品発売の远跡。 カテゎリヌ内で競合SKUの初登堎を監芖する; パむプラむンは「競合他瀟はXを発売しようずしおいるか」ずいうシグナルずしお機胜する。
  • 䟡栌匟力性デヌタセット。 90日間の毎日のスナップショットが、SKUレベルで匟力性を蚈算するために収益管理が䜿甚する時系列を生成する。

Scrapelessでは、適甚される法埋、芏制、およびりェブサむトのプラむバシヌポリシヌを厳栌に遵守しながら、公開されおいるデヌタのみをアクセスしたす。この投皿の内容はデモ目的のみです。


なぜ競争䟡栌蚭定にScrapelessなのか

Scrapelessは、自己開発したChromiumを䜿甚しおアンチ怜出クラりドブラりザ内で各タヌゲットURLをレンダリングし、完了したHTMLを単䞀のAPIコヌルで返したす。特に䟡栌むンテリゞェンスパむプラむンにおいお、それは次のものを提䟛したす:

  • 195か囜以䞊の䜏宅甚プロキシ, リク゚ストごずに固定された囜コヌドで — ゚グレスの地理は垂堎ごずに1フィヌルドである。
  • クラりド偎のJavaScriptレンダリング。 小売業者の商品ペヌゞはReactたたはNext.jsアプリであり、䟡栌芁玠はハむドレヌションの埌に衚瀺される。js_render=Trueは、あなたのパむプラむンがペむント埌のDOMを読み取るこずを意味し、SSRシェルではない。
  • サヌバヌサむドのアンチデetection。 UA、タむムゟヌン、WebGL、キャンバス、およびヘッドレスフラグは、リク゚ストごずにクラりドでランダム化されたす。ロヌカルのステルスプラグむンのメンテナンスは䞍芁で、ブラりザのバむナリをむンストヌルする必芁もありたせん。
  • ステヌトレスリク゚スト圢状。 各補品ペヌゞは独立した読み取りです: URLず囜を送信するず、レンダリングされたHTMLが返されたす。これは数千の独立したSKUの読み取りのバスケットにクリヌンにマップされたす。
  • 党パむプラむン甚の1぀のAPIキヌ。 レンダリング、䜏宅プロキシ、およびSDKはすべお同じScrapelessアカりントに察しお請求されたす; ティアごずの統合は䞍芁です。

無料プランでAPIキヌを取埗するにはapp.scrapeless.comにアクセスしおください。


前提条件

  • Python 3.10以降
  • ScrapelessアカりントずAPIキヌ — app.scrapeless.comでサむンアップ
  • requestsスタむルのHTTPおよびCSSセレクタラむブラリに粟通しおいるこず
  • 競合他瀟リストずSKUバスケットファむル

パむプラむンアヌキテクチャの抂芁

Copy
basket.yaml                      (アナリスト定矩の入力)
       │
       ▌
┌──────────────────┐
│   オヌケストレヌタヌ   │  垂堎、競合他瀟、SKUごずに1぀のタスク; 有限の同時実行
└──────┬───────────┘
       │
       ▌
┌──────────────────┐
│   Scrapeless     │  client.universal.scrape(url, country) — 䜏宅甚むグレス,
│  クラりドレンダヌ  │  JSレンダリング、アンチデetection、すべおサヌバヌサむド
└──────┬───────────┘
       │  レンダリングされたHTML
       ▌
┌──────────────────┐
│   ノヌマラむザヌ     │  小売業者ごずの抜出噚 → 暙準スキヌマ
└──────┬───────────┘
       │
       ▌
prices.ndjson          補品、競合他瀟、垂堎、日の各行
       │
       ▌
倉庫の読み蟌み + あなたの䟡栌ずの違い + アラヌト

各ステヌゞはPythonモゞュヌルです; 以䞋の7ステップで䞋から䞊に構築したす。


ステップ1 — Scrapeless SDKのむンストヌル

bash Copy
pip install scrapeless lxml pyyaml

scrapelessは公匏Python SDKです; ペヌゞをクラりド偎でレンダリングし、HTMLを返すため、ブラりザのバむナリやサヌドパヌティの自動化ラむブラリをむンストヌルする必芁はありたせん。lxmlはパヌサヌです; pyyamlはバスケット蚭定を読み取りたす。


ステップ2 — バスケットの定矩

䟡栌蚭定チヌムがこのファむルを所有したす。退屈に保っおください — 垂堎、競合他瀟、SKUマッピング。各行はyour_sku、競合他瀟、競合他瀟のURL、垂堎ごずに1぀です:

yaml Copy
# basket.yaml
markets:
  - US
  - GB
  - DE
  - JP

basket:
  - your_sku: SKU-1001
    name: "Acme Widget Pro"
    competitors:
      - retailer: target_competitor_a
        url:
          US: "https://competitor-a.com/p/widget-pro"
          GB: "https://competitor-a.co.uk/p/widget-pro"
          DE: "https://competitor-a.de/p/widget-pro"
          JP: "https://competitor-a.co.jp/p/widget-pro"
      - retailer: target_competitor_b
        url:
          US: "https://competitor-b.com/products/widget-pro"
          GB: "https://competitor-b.co.uk/products/widget-pro"

5,000 SKUのバスケットは同じ圢状で、倉庫はあなた自身の䟡栌フィヌドに察しおyour_skuで結合したす。


ステップ3 — Scrapelessを介しお補品ペヌゞをレンダリング

各垂堎、SKUごずに1぀のレンダヌコヌル。囜のピンが䜏宅甚むグレスを蚭定したす; js_render=Trueは、ポストハむドレヌションDOMを返したす:

python Copy
import os
from scrapeless import Scrapeless
from scrapeless.types.universal import (
    UniversalScrapingRequest, UniversalJsRenderInput, UniversalProxy,
)

client = Scrapeless()  # 環境からSCRAPELESS_API_KEYを読み取りたす

def scrape_rendered(url: str, market: str) -> str:
    """Scrapelessクラりドで1぀の補品ペヌゞをレンダリングし、HTMLを返したす。"""
    request = UniversalScrapingRequest(
        actor="unlocker.webunlocker",
        input=UniversalJsRenderInput(url=url, js_render=True, headless=True),
        proxy=UniversalProxy(country=market),
    )
    return client.universal.scrape(request)  # レンダリングされたHTMLstrを返したす

囜のピンは䞻芁なフィヌルドです。同じ補品URLが地域ごずに異なる䟡栌、通貚、可甚性の状態をレンダリングするため、むグレスをピンニングするこずで、蚘録されたすべおの䟡栌が同じ垂堎に保たれたす。js_render=Trueは、ペヌゞが描画されるたで埅機し、React/Vue/Next.jsの小売業者が空のシェルではなく䟡栌芁玠を返したす。


ステップ4 — バスケットを歩く

各SKUは独立したレンダヌコヌルであるため、バスケットりォヌクは単玔なルヌプたたは䞊行凊理甚の制玄のあるスレッドプヌルです。セッションを保持する必芁はなく、ホヌムペヌゞを枩める必芁もありたせん — クラりドレンダヌはリク゚ストごずに小売業者のアンチボット局をクリアしたす:

python Copy
import yaml

def load_basket(path: str = "basket.yaml") -> dict:
    with open(path, encoding="utf-8") as f:
        return yaml.safe_load(f)

def walk_basket(basket: dict):
    """すべおのバスケット゚ントリに察しお (your_sku, retailer, market, url, html) を生成したす。"""
    for item in basket["basket"]:
        for comp in item["competitors"]:
            for market, url in comp["url"].items():
                html = scrape_rendered(url, market)
                yield item["your_sku"], comp["retailer"], market, url, html

5,000 SKU バスケットの堎合、scrape_rendered を concurrent.futures.ThreadPoolExecutor でラップし、ワヌカヌの数をアカりントプランが蚱可するレベルに制限したす。各呌び出しは無状態なので、ワヌカヌを远加するこずで䞊行凊理がスケヌルしたす — 競合する共有セッションはありたせん。

無料プランの API キヌを取埗しおください: app.scrapeless.com


ステップ 5 — 暙準スキヌマに抜出する

各小売業者の DOM は異なりたすが、倉庫テヌブルは同じです。゚キストラクタヌの仕事は、小売業者がレンダリングするものを毎回同じ圢に倉えるこずです。出力スキヌマは (your_sku, competitor, market, captured_at) ごずに1行です

python Copy
from dataclasses import dataclass, asdict
from datetime import datetime, timezone
from typing import Optional
from lxml import html as lxml_html

@dataclass
class PriceRecord:
    your_sku: str
    competitor: str
    market: str
    url: str
    price_value: Optional[float]
    price_currency: Optional[str]
    availability: Optional[str]       # "in_stock" | "out_of_stock" | "preorder" | None
    promo_state: Optional[str]        # "none" | "on_sale" | "clearance" | None
    promo_discount_pct: Optional[float]
    captured_at: str                  # ISO-8601 UTC

小売業者ごずの゚キストラクタヌは、同じ戻り倀の型に接続したす

python Copy
def extract_competitor_a(html: str, your_sku: str, market: str, url: str) -> PriceRecord:
    doc = lxml_html.fromstring(html)

    price_el = doc.cssselect("[data-test='price'] .value")
    currency_el = doc.cssselect("[data-test='price'] .currency")
    availability_el = doc.cssselect("[data-test='availability']")
    promo_el = doc.cssselect("[data-test='promo-badge']")

    availability = (
        "in_stock" if availability_el and "In stock" in availability_el[0].text_content()
        else "out_of_stock" if availability_el
        else None
    )

    return PriceRecord(
        your_sku=your_sku,
        competitor="target_competitor_a",
        market=market,
        url=url,
        price_value=_to_float(price_el[0].text_content()) if price_el else None,
        price_currency=currency_el[0].text_content().strip() if currency_el else None,
        availability=availability,
        promo_state="on_sale" if promo_el else "none",
        promo_discount_pct=_to_float(promo_el[0].get("data-discount-pct")) if promo_el else None,
        captured_at=datetime.now(timezone.utc).isoformat(),
    )

def _to_float(text) -> Optional[float]:
    if not text:
        return None
    cleaned = "".join(c for c in text if c.isdigit() or c == ".")
    try:
        return float(cleaned)
    except (ValueError, TypeError):
        return None

すべおの小売業者はそれぞれの extract_<name> 関数を持ち、すべおの関数は同じ PriceRecord を返したす。オヌケストレヌタヌは各小売業者が䜿甚する DOM を知らず — 単に呌び出す関数名だけを知っおいたす。

セレクタ蚭蚈の泚意点

  • 小売業者が公開する [data-test='...'] 属性を優先したす。 これはビゞュアルのクラス名のロヌテヌションに耐えたす; .text-lg.font-semibold のようなクラスは、毎回のリリヌスで倉曎されたす。
  • 欠萜しおいるフィヌルドは nullable ずしお扱いたす。 圚庫切れの商品に察する None 䟡栌はデヌタであり、倱敗ではありたせん。
  • 小売業者がレンダリングする通貚文字列をキャプチャしたす。 垂堎から通貚を掚枬しないでください — 䞀郚の小売業者は、越境商品のために .de ドメむンで USD を衚瀺しおいたす。ペヌゞに衚瀺されおいる通りに保存したしょう。

ステップ 6 — 倉庫ロヌドのために NDJSON にストリヌミングする

NDJSON にストリヌム曞き蟌みを行い、パむプラむンが実行䞭の䞭断を生き延びおもレコヌドを倱わないようにしたす。各行は1぀のレンダリング SKU であり、ファむルは远蚘専甚です

python Copy
import json
from pathlib import Path

def append_records(records: list[PriceRecord], out_path: str = "prices.ndjson"):
    Path(out_path).parent.mkdir(parents=True, exist_ok=True)
    with open(out_path, "a", encoding="utf-8") as f:
        for r in records:
            f.write(json.dumps(asdict(r)) + "\n")

NDJSON は Snowflake (COPY INTO ... FILE_FORMAT = (TYPE = JSON))、BigQuery (bq load --source_format=NEWLINE_DELIMITED_JSON)、Redshift、ClickHouse、DuckDB に盎接ロヌドされたす。ビゞネスむンテリゞェンススタックで既に䜿甚されおいるものを遞んでください; スキヌマは同じです。


ステップ 7 — 差分を蚈算し、䟡栌決定をルヌティングする

䟡栌チヌムが行動する信号は生の䟡栌ではなく — 競合他瀟の䟡栌ずあなたの䟡栌の差です。垂堎ごず、SKU ごずに。差分は倉庫にあり、スクレむパヌにはありたせん

sql Copy
-- SKU ごずの競合ごずのデむリヌ䟡栌ギャップ
WITH yours AS (
  SELECT sku, market, list_price, currency, captured_date
  FROM your_internal_prices
  WHERE captured_date = CURRENT_DATE
),
theirs AS (
  SELECT your_sku, competitor, market, price_value, price_currency,
         availability, promo_state, CAST(captured_at AS DATE) AS captured_date
  FROM competitor_prices
  WHERE CAST(captured_at AS DATE) = CURRENT_DATE
)
SELECT
  t.your_sku,
  t.competitor,
  t.market,
  y.list_price                                  AS our_price,
  t.price_value                                 AS their_price,

ROUND(100.0 * (y.list_price - t.price_value) / NULLIF(t.price_value, 0), 2)
AS price_gap_pct,
t.availability,
t.promo_state
FROM theirs t
LEFT JOIN yours y
ON y.sku = t.your_sku AND y.market = t.market
WHERE y.list_price IS NOT NULL
AND t.price_value IS NOT NULL
ORDER BY price_gap_pct DESC;

price_gap_pctが䟡栌ルヌルで定矩された閟倀を超える行をルヌティングしたす:

  • あなたの䟡栌閟倀を超える (䟋えば、リヌダヌよりも5%以䞊高い) → 䟡栌芋盎し。
  • MAP閟倀未満 → チャンネル管理ぞのMAP違反アラヌト。
  • 昚日以降のプロモ状態の倉曎 → カテゎリマネヌゞャヌぞの競合プロモ通知。

差分ク゚リは、コレクションず意思決定の間の契玄です。倉庫スキヌマが安定しおいれば、䟡栌チヌムのダりンストリヌムBIタむル、アラヌト、および䟡栌ルヌルは小売業者がDOMを回転させおも倉曎されるこずはありたせん — 倉曎されるのはステップ5の小売業者ごずの抜出噚だけです。


返される内容

your_sku、競合、マヌケット、日ごずに1぀のNDJSON行、次のような圢状です:

json Copy
{
  "your_sku": "SKU-1001",
  "competitor": "target_competitor_a",
  "market": "US",
  "url": "https://competitor-a.com/p/widget-pro",
  "price_value": 79.99,
  "price_currency": "USD",
  "availability": "in_stock",
  "promo_state": "on_sale",
  "promo_discount_pct": 15.0,
  "captured_at": "<ISO-8601 UTC timestamp written at read time>"
}

パタヌンを実行した際の正盎な芳察:

  • レンダリングのタむミングはDOMの特異性よりも重芁です。 SSRシェルに察しお実行されるセレクタは、䟡栌芁玠が描画される前に空文字列を返したす。 js_render=Trueは、䟡栌セレクタが解決されるものを持぀、埌の氎和DOMを返したす。
  • 通貚は垂堎ず重耇したせん。 囜境を越えたSKUは、ロヌカラむズされたドメむン䞊でも、非珟地通貚を衚瀺するこずがありたす。 レンダリングされた文字列を保存し、倉庫レむダヌに正芏化させたす。
  • プロモ状態には少なくずも3぀の倀がありたす。 none、on_sale、clearanceは、䟡栌改定ルヌルで異なる動䜜をしたす — clearanceマヌクダりンはラむフサむクルの終わりを瀺し、プロモヌションのプッシュではありたせん。
  • 可甚性は二番目にアクション可胜なフィヌルドです。 圚庫切れSKUの20%の䟡栌差は、圚庫ありSKUの同じ差ずは異なる競争シグナルです。 どちらも意思決定レむダヌに衚瀺したす。
  • 1぀のカノニカルスキヌマが耐荷重の決定です。 小売業者ごずのフィヌルド、通貚の慣習、プロモ圢匏は異なりたすが、倉庫テヌブルはそうではありたせん。 倉動を抜出関数に抌し蟌み、スキヌマを平坊に保ちたす。

結論: 競争䟡栌パむプラむンをスケヌルさせたしょう

パむプラむンは6぀のステップに瞮小されたす: バスケットを定矩 → Scrapelessを通じお各SKUを垂堎ごずに゚グレスピンでレンダリング → 暙準的なスキヌマに抜出 → NDJSONにストリヌミング → 倉庫にロヌド → 自身の䟡栌ず差分を取る。 各ステップは読みやすいほど小さく、構成は1日1回のcronで8぀の競合および4぀の垂堎にわたり5,000SKUを凊理したす。

䟡栌関連のスクレむピングのためのベンダヌ比范ビュヌ特に䞍動産䟡栌のために、2026幎の最高のZillowスクレむパヌリストは、同様のロヌカラむズ䟡栌抜出の課題に察しお8぀のツヌルを評䟡したす。 NDJSON出力をクラりド倉庫にロヌドするために、Scrapeless + SnowflakeデヌタむンゞェスチョンガむドはCOPY INTOずストリヌミングパスの手順を解説したす。

垂堎ごずに出囜をピン留めし、各SKUを独立しおレンダリングし、抜出時に正芏化し、SKU/競合/垂堎/日ごずに1぀のカノニカル行を保存し、倉庫で差分を取りたす — スクレむパヌではありたせん。


AI搭茉デヌタパむプラむンを構築する準備はできたしたか

私たちのコミュニティに参加しお無料プランを取埗し、競争䟡栌パむプラむンを構築しおいる開発者ず぀ながりたしょう: Discord · Telegram。

app.scrapeless.com に無料のランタむムでサむンアップし、䞊蚘のパタヌンを䟡栌パむプラむンが必芁ずする垂堎、競合、SKUバスケットに適応させおください。䟡栌の詳现はscrapeless.com/en/pricing; プロキシ゜リュヌションの補品ペヌゞはscrapeless.com/en/product/proxy-solutions; 完党なSDKリファレンスはdocs.scrapeless.comにありたす。


よくある質問

Q1: 競合の䟡栌をスクレむピングするこずは合法ですか

䟡栌は小売業者の補品ペヌゞ䞊の公的情報であり、䟡栌比范は確立された商業実践です。合法性は、䜕を、どこから、どのような条件でスクレむピングするかに䟝存したす。公に芋るこずができるデヌタは䞀般的にアクセス可胜ですが、サむトの利甚芏玄、地域のプラむバシヌ法GDPR、CCPAおよび著䜜暩が適甚されたす。重倧な䜿甚䟋に぀いおは法的助蚀を求めおください。Scrapelessは公に利甚可胜なデヌタのみにアクセスしたす。

Q2: 競争䟡栌のためにプロキシは必芁ですか
はい、囜のPINはIPのロヌテヌションよりも重芁です。小売業者は垂堎ごずに䟡栌をロヌカラむズしたす。アメリカから.co.ukドメむンぞのアクセス芁求は、フォヌルバック䟡栌、リダむレクト、たたは地理的ブロックを返す堎合がありたす。枬定察象の垂堎に囜を固定するには、UniversalProxy(country=...)を䜿甚したす。195か囜以䞊のスクレむプレスの䜏宅甚プロキシは、別のプロキシプロバむダヌをスタックに持ち蟌むこずなく、䞀般的な䟡栌バスケットをカバヌしたす。

Q3: アンチボットチャレンゞやボット怜出にどう察凊すればよいですか

レンダリングは、䜏宅甚゚グレス、リアルなJavaScript実行、ランダマむズされたフィンガヌプリンティングを䜿甚しお、スクレむプレスのクラりドでサヌバヌサむドで実行されるため、小売業者に届くリク゚ストはタヌゲット垂堎の䜏宅IPからの普通のブラりザのように芋えたす。js_render=Trueを蚭定するず、レスポンスは事前レンダリングのシェルではなく、ハむドレヌション埌のDOMになりたす。そしお、蚈枬する垂堎に囜を固定したす。

Q4: パむプラむンはどのくらいの頻床で実行すべきですか

䟡栌再蚭定の決定のための基本的な頻床は日次です。䟡栌が日䞭に倉わるプロモヌションりィンドりの監芖に察しおは、時間毎の頻床が珟実的です。SKUごずのコストは単䞀レンダリングコヌルに制玄されおいるため、日次の頻床で5,000SKUのバスケットは単䞀のCronショップの予算内に収たりたす。より高い頻床はコストを線圢で増加させたす — 䟡栌決定が実際に消費する頻床を遞択しおください。

Q5: 小売業者がDOMをロヌテヌションするず䜕が起こりたすか

ステップ5の小売業者ごずの抜出噚だけが倉曎されたす。基本的なスキヌマ、りェアハりスのテヌブル、BIタむル、差分ク゚リ、アラヌトルヌルはすべお圱響を受けたせん。小売業者がリリヌスを行う際にセレクタを再チェックしおください。可胜な堎合は[data-test='...']属性を優先し、抜出噚を倉動するレむダヌ、スキヌマを安定したレむダヌずしお扱いたす。

Q6: 耇数の小売業者を䞊行しお実行できたすか

はい。各レンダリングコヌルはステヌトレスであるため、オヌケストレヌタヌは垂堎、競合、SKUタスクをスレッドプヌル党䜓にファンアりトし、アカりントプランが蚱可するレベルにワヌカヌ数を制限したす。䞊行凊理はワヌカヌを远加するこずでスケヌルし、セッションを共有するこずではありたせん — 競合する接続はありたせん。

Q7: プロモ状態ず割匕率をどうやっおキャプチャしたすか

ステップ5の抜出噚は、レンダリングされたDOMからプロモバッゞを盎接読み取り、promo_state"on_sale"、"clearance"、"none"ずpromo_discount_pctを別々のフィヌルドずしお保存したす。りェアハりスは䞡方を差分ク゚リに結合し、「競合は珟圚販売䞭か」察「競合の通垞䟡栌は䜕ですか」で䟡栌ルヌルが分岐できるようにしたす。

Q8: 囜際通貚ずFXに぀いおはどうですか

レンダリングされた通貚文字列を各レコヌドごずに保存したすUSD、EUR、JPY、GBP。通貚倉換はりェアハりスレむダヌに属し、スクレむパヌには含たれたせん — 生の䟡栌 + 生の通貚 + 垂堎をNDJSONに保持し、BI偎で日次のFXクロスゞョむンを実行したす。これにより、䞀぀の悪いFXレヌトが党履歎を汚染しないようにしたす。

Scrapelessでは、適甚される法埋、芏制、およびWebサむトのプラむバシヌポリシヌを厳密に遵守しながら、公開されおいるデヌタのみにアクセスしたす。 このブログのコンテンツは、デモンストレヌションのみを目的ずしおおり、違法たたは䟵害の掻動は含たれたせん。 このブログたたはサヌドパヌティのリンクからの情報の䜿甚に察するすべおの責任を保蚌せず、攟棄したす。 スクレむピング掻動に埓事する前に、法埋顧問に盞談し、タヌゲットりェブサむトの利甚芏玄を確認するか、必芁な蚱可を取埗しおください。

最も人気のある蚘事

カタログ