Langkau ke kandungan

CrawlForge TeamPasukan Kejuruteraan

9 min bacaanDikemas kini

Bina Sistem Pemantauan Harga Berkuasa AI

Satu perubahan harga daripada seorang pesaing boleh merugikan anda berjuta-juta dalam hasil yang hilang. Namun, kebanyakan syarikat masih memantau harga secara manual -- menugaskan penganalisis untuk menyemak laman web pesaing setiap minggu, menyalin-tampal data ke dalam hamparan, dan menandakan anomali dengan mata kasar. Apabila perubahan harga dikesan, kerosakan sudah berlaku.

CrawlForge membolehkan anda membina sistem pemantauan harga yang automatik sepenuhnya yang menyemak beribu-ribu halaman produk setiap hari, mengesan perubahan dalam beberapa minit, dan menyalurkan data berstruktur terus ke dalam saluran keputusan anda. Panduan ini membimbing anda melalui keseluruhan seni bina.

Kandungan

Mengapa Pemantauan Harga Automatik Penting

Dalam e-dagang dan SaaS, penetapan harga ialah tuas terbesar untuk pengoptimuman hasil. Penyelidikan daripada McKinsey menunjukkan bahawa peningkatan 1% dalam penetapan harga menghasilkan peningkatan 11% dalam keuntungan -- lebih daripada mana-mana tuas lain termasuk volum atau pengurangan kos. Menjejaki trend harga yang lebih luas melalui set data awam seperti BLS Consumer Price Index boleh membantu memberi konteks kepada pergerakan pesaing.

Pemantauan harga automatik menyelesaikan tiga masalah kritikal:

  1. Kelajuan: Kesan perubahan harga pesaing dalam beberapa jam, bukan beberapa minggu
  2. Liputan: Pantau beribu-ribu SKU serentak merentas berpuluh-puluh pesaing
  3. Ketepatan: Hapuskan kesilapan manusia daripada pengumpulan data manual

CrawlForge paling sesuai untuk pasukan yang perlu memantau penetapan harga merentas berbilang pesaing pada skala besar, kerana model berasaskan creditnya bermakna anda membayar setiap ekstraksi -- bukan setiap kerusi atau setiap bulan kapasiti yang tidak digunakan.

Gambaran Keseluruhan Seni Bina

Sistem ini menggunakan empat alat CrawlForge yang bekerja bersama:

ComponentToolCreditsPurpose
Penemuan halamanmap_site3Cari semua halaman produk/harga
Ekstraksi statikscrape_structured2Ekstrak harga daripada HTML standard
Ekstraksi dinamikscrape_with_actions5Tangani harga yang dipaparkan JavaScript
Penjejakan perubahantrack_changes3Kesan perbezaan harga dari semasa ke semasa

Data mengalir melalui saluran yang ringkas: Temui halaman -> Ekstrak harga -> Bandingkan dengan garis dasar -> Beri amaran tentang perubahan.

Langkah 1: Tentukan Halaman Sasaran Anda

Mulakan dengan memetakan laman pesaing anda untuk menemui semua halaman produk dan harga secara automatik.

Typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';

// Initialize the MCP client connected to CrawlForge
const client = new Client({
  name: 'price-monitor',
  version: '1.0.0',
});

// Discover all product pages on a competitor site
async function discoverProductPages(competitorUrl: string): Promise<string[]> {
  const siteMap = await client.callTool({
    name: 'map_site',
    arguments: {
      url: competitorUrl,
      max_urls: 500,
      include_metadata: true,
      group_by_path: true,
    },
  });

  const result = JSON.parse(siteMap.content[0].text);

  // Filter for product and pricing pages
  const productPages = result.urls.filter((url: string) =>
    url.includes('/product') ||
    url.includes('/pricing') ||
    url.includes('/plans')
  );

  return productPages;
}

// Usage: discover pages for each competitor
const competitors = [
  'https://competitor-a.com',
  'https://competitor-b.com',
  'https://competitor-c.com',
];

for (const site of competitors) {
  const pages = await discoverProductPages(site);
  console.log(`Found ${pages.length} product pages on ${site}`);
}

Langkah penemuan awal ini menelan kos 3 credits bagi setiap laman pesaing. Jalankannya setiap minggu untuk menangkap halaman produk baharu.

Langkah 2: Ekstrak Data Harga

Untuk halaman HTML standard yang harganya dipaparkan di sisi pelayan, gunakan scrape_structured dengan pemilih CSS. Apabila menyasarkan laman e-dagang yang mengikut perbendaharaan kata Schema.org Offer, anda boleh mengekstrak data berstruktur harga secara terus.

Typescript
interface PriceData {
  productName: string;
  price: string;
  currency: string;
  url: string;
  extractedAt: string;
}

async function extractPrices(urls: string[]): Promise<PriceData[]> {
  const results: PriceData[] = [];

  // Batch scrape all URLs for efficiency
  const batchResult = await client.callTool({
    name: 'batch_scrape',
    arguments: {
      urls: urls.map(url => ({
        url,
        selectors: {
          productName: 'h1.product-title, [data-testid="product-name"]',
          price: '.price-current, [data-testid="price"], .plan-price',
          currency: '.price-currency, [data-currency]',
        },
      })),
      maxConcurrency: 10,
      includeMetadata: true,
    },
  });

  const batch = JSON.parse(batchResult.content[0].text);

  for (const page of batch.results) {
    if (page.status === 'success') {
      results.push({
        productName: page.data.productName || 'Unknown',
        price: page.data.price || 'N/A',
        currency: page.data.currency || 'USD',
        url: page.url,
        extractedAt: new Date().toISOString(),
      });
    }
  }

  return results;
}

Menggunakan batch_scrape (5 credits) berbanding panggilan scrape_structured individu (2 credits setiap satu) adalah lebih cekap apabila memproses 3+ URL serentak.

Langkah 3: Tangani Halaman Harga Dinamik

Banyak halaman harga SaaS moden memaparkan harga dengan JavaScript, menggunakan suis togol untuk pengebilan bulanan/tahunan, atau memerlukan interaksi untuk mendedahkan harga enterprise. Gunakan scrape_with_actions untuk halaman ini.

Typescript
async function extractDynamicPricing(url: string) {
  const result = await client.callTool({
    name: 'scrape_with_actions',
    arguments: {
      url,
      actions: [
        // Wait for pricing to render
        { type: 'wait', selector: '.pricing-table', timeout: 5000 },
        // Click "Annual" toggle to see annual pricing
        { type: 'click', selector: '[data-billing="annual"]' },
        // Wait for prices to update
        { type: 'wait', timeout: 1000 },
        // Take a screenshot for verification
        { type: 'screenshot', description: 'Annual pricing view' },
      ],
      extractionOptions: {
        selectors: {
          plans: '.plan-card',
          prices: '.plan-price',
          features: '.plan-features li',
        },
        includeMetadata: true,
      },
    },
  });

  return JSON.parse(result.content[0].text);
}

Ini mengendalikan halaman yang memerlukan interaksi pelayar -- menogol kitaran pengebilan, mengembangkan akordion, atau menatal untuk memuatkan kandungan lazy. Setiap ekstraksi menelan kos 5 credits.

Langkah 4: Bina Saluran Pengesanan Perubahan

Dengan data harga yang diekstrak, gunakan track_changes untuk mengesan perbezaan antara larian pemantauan.

Typescript
async function detectPriceChanges(
  competitorUrl: string,
  currentPrices: PriceData[]
) {
  // Create or compare against baseline
  const changeResult = await client.callTool({
    name: 'track_changes',
    arguments: {
      url: competitorUrl,
      operation: 'compare',
      content: JSON.stringify(currentPrices),
      trackingOptions: {
        granularity: 'element',
        trackText: true,
        ignoreWhitespace: true,
        significanceThresholds: {
          minor: 0.05,    // <5% price change = minor
          moderate: 0.15,  // 5-15% = moderate
          major: 0.30,     // >15% = major alert
        },
      },
    },
  });

  const changes = JSON.parse(changeResult.content[0].text);

  if (changes.hasChanges) {
    console.log(`Price changes detected on ${competitorUrl}:`);
    for (const change of changes.differences) {
      console.log(`  ${change.field}: ${change.oldValue} -> ${change.newValue}`);
    }
  }

  return changes;
}

Langkah 5: Sediakan Amaran dan Pelaporan

Gabungkan pengesanan perubahan dengan amaran automatik untuk melengkapkan kitaran.

Typescript
interface PriceAlert {
  competitor: string;
  product: string;
  oldPrice: string;
  newPrice: string;
  changePercent: number;
  severity: 'minor' | 'moderate' | 'major';
  detectedAt: string;
}

async function runDailyMonitoring(competitors: string[]): Promise<PriceAlert[]> {
  const alerts: PriceAlert[] = [];

  for (const competitorUrl of competitors) {
    // Step 1: Discover pages (weekly, cached)
    const pages = await discoverProductPages(competitorUrl);

    // Step 2: Extract current prices
    const prices = await extractPrices(pages);

    // Step 3: Detect changes
    const changes = await detectPriceChanges(competitorUrl, prices);

    // Step 4: Generate alerts for significant changes
    if (changes.hasChanges) {
      for (const diff of changes.differences) {
        const changePercent = calculatePercentChange(
          diff.oldValue,
          diff.newValue
        );

        alerts.push({
          competitor: competitorUrl,
          product: diff.field,
          oldPrice: diff.oldValue,
          newPrice: diff.newValue,
          changePercent,
          severity: changes.significance,
          detectedAt: new Date().toISOString(),
        });
      }
    }
  }

  return alerts;
}

function calculatePercentChange(oldVal: string, newVal: string): number {
  const old = parseFloat(oldVal.replace(/[^0-9.]/g, ''));
  const current = parseFloat(newVal.replace(/[^0-9.]/g, ''));
  return ((current - old) / old) * 100;
}

Analisis Kos Credits

Berikut ialah pecahan kos yang realistik untuk memantau 5 pesaing dengan ~100 halaman produk setiap satu:

OperationToolCreditsFrequencyMonthly Cost
Penemuan lamanmap_site3 eachMingguan (5 laman)60 credits
Ekstraksi statikbatch_scrape5 per batchHarian (10 kelompok)1,500 credits
Ekstraksi dinamikscrape_with_actions5 eachHarian (10 halaman)1,500 credits
Pengesanan perubahantrack_changes3 eachHarian (5 laman)450 credits
Total~3,510 credits/mo

Ini muat dengan selesa dalam Professional plan pada $99/month (100,000 credits). Untuk operasi yang lebih kecil memantau 1-2 pesaing, Hobby plan pada $19/month (5,000 credits) berfungsi dengan baik.

Keputusan dan Manfaat

Sistem pemantauan harga yang dibina dengan baik memberikan hasil yang boleh diukur:

  • Masa tindak balas: Kesan perubahan harga dalam tempoh 24 jam dan bukannya 1-2 minggu
  • Liputan: Pantau 500+ halaman produk merentas 5+ pesaing serentak
  • Penjimatan kos: Gantikan 10-20 jam/minggu kerja penganalisis manual
  • Perlindungan hasil: Bertindak balas terhadap penurunan harga pesaing sebelum kehilangan bahagian pasaran

Gabungan batch_scrape untuk kecekapan dan scrape_with_actions untuk halaman yang kompleks bermakna anda boleh mengendalikan kedua-dua katalog e-dagang statik dan halaman harga SaaS moden yang banyak JavaScript dalam saluran yang sama.

Soalan Lazim

Berapa kerap saya patut menjalankan pemantauan harga?

Untuk e-dagang yang kerap berubah harga (Amazon, elektronik), jalankan setiap hari. Untuk halaman harga SaaS yang berubah setiap suku tahun, semakan mingguan sudah memadai. Model credit CrawlForge bermakna anda hanya membayar untuk apa yang anda gunakan -- tiada yuran tetap untuk kapasiti pemantauan yang tidak digunakan.

Bolehkah CrawlForge mengendalikan perlindungan anti-bot pada laman pesaing?

Ya. Jika ekstraksi standard gagal, naik taraf kepada stealth_mode (5 credits) yang merangkumi rawakan cap jari, putaran antara proksi anda sendiri, dan simulasi tingkah laku manusia. Kebanyakan halaman harga pesaing boleh diakses secara awam dan tidak memerlukan stealth.

Bagaimana pula dengan laman yang memerlukan log masuk untuk melihat harga?

Gunakan scrape_with_actions untuk mengautomasikan pengisian borang dan aliran pengesahan. Pilihan formAutoFill mengendalikan borang log masuk, dan CrawlForge mengekalkan keadaan sesi merentas rantaian tindakan.


Bersedia untuk mengautomasikan intelligen harga anda? Start free with 1,000 credits -- cukup untuk memantau 2 pesaing selama seminggu penuh. Tiada kad kredit diperlukan.

Sumber berkaitan:

Cuba sendiri — tiada pendaftaran diperlukan

Terokai kesemua 31 alat scraping dan pengekstrakan CrawlForge dalam playground, kemudian mula secara percuma dengan 1,000 credits.

1,000 credits percuma • Sekali sahaja • Tiada kad kredit diperlukan

Tag

  • price-monitoring
  • web-scraping
  • e-commerce
  • competitive-intelligence
  • automation
  • ai-agents
  • mcp

Tentang Penulis

CrawlForge Team

Pasukan Kejuruteraan

Membina MCP server web scraping yang paling menyeluruh. Kami mencipta alatan yang membantu pembangun mengekstrak, menganalisis dan mengubah data web untuk aplikasi AI.

Surat berita

Kekal dikemas kini dengan pandangan terkini

Dapatkan tutorial, kemas kini produk dan petua web scraping terus ke peti masuk anda.

Tiada spam. Berhenti melanggan bila-bila masa.

Teruskan membaca

Artikel Berkaitan

Kes Penggunaan

9m

Perisikan Persaingan Masa Nyata dengan Ejen AI

Bina sistem perisikan persaingan berkuasa AI menggunakan CrawlForge dan Claude. Pantau pesaing, jejaki perubahan, dan jana cerapan strategik setiap minggu.