Pricing

Pemantauan Harga Rentas Wilayah untuk Perjalanan dan SaaS

5 min read Published Updated 896 words

Sebuah bilik hotel di Paris yang disenaraikan pada €200 di Booking.com dari IP Perancis berharga €260 apabila pelayar yang sama melawat URL yang sama dari IP AS. Itu bukan artifak penukaran mata wang — ia adalah harga dinamik yang disengajakan berdasarkan geo-lokasi. Untuk SaaS, tempat duduk yang sama di Slack atau Jira boleh berbeza sebanyak 40% antara Amerika Syarikat dan India. Memantau perbezaan harga ini pada skala besar memerlukan infrastruktur proksi yang dapat bertahan daripada sistem anti-penipuan yang digunakan oleh syarikat penerbangan dan vendor awan terhadap pengikis.

Mengapa SKU yang Sama Berbeza Harganya Merentasi Sempadan

Tiga mekanisme mendorong harga arbitraj geo. Pertama, penukaran mata wang dengan markup tersembunyi — enjin tempahan hotel menggunakan spread FX 3-5% yang berbeza mengikut negara. Kedua, rejim cukai tempatan: VAT di EU, GST di India, cukai jualan di AS. Ketiga, dan yang paling agresif, harga dinamik berdasarkan permintaan. Penerbangan dari London ke New York dengan British Airways menunjukkan harga yang lebih tinggi apabila permintaan berasal dari IP UK berbanding dari IP Jerman, kerana algoritma menganggap pengembara UK mempunyai kesanggupan membayar yang lebih tinggi. Vendor SaaS seperti Atlassian dan Salesforce mengekalkan senarai harga berasingan setiap rantau, selalunya dengan diskaun 30-50% untuk pasaran sedang membangun. Satu-satunya cara untuk menangkap harga ini secara atur cara adalah dengan membuat permintaan kelihatan berasal dari setiap pasaran sasaran.

Seni Bina Proksi untuk Tangkapan Harga Pelbagai Rantau

Satu kolam proksi kediaman sahaja tidak mencukupi. Anda memerlukan kolam nod keluar yang sepadan dengan negara, bandar, dan kadangkala juga pembawa (contohnya, ISP mudah alih Perancis vs. DSL kediaman Perancis). Pendekatan standard menggunakan broker proksi yang mengekalkan senarai proksi terautentikasi yang berputar. Di bawah adalah arahan curl minimum yang mengambil harga hotel dari proksi Perancis, menetapkan pengepala Accept-Language kepada fr-FR dan menghantar User-Agent yang realistik dari binaan Chrome terkini:

curl -s -x "http://user:pass@fr-proxy.example.com:3128" \
  -H "Accept-Language: fr-FR,fr;q=0.9" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" \
  "https://www.booking.com/hotel/fr/paris-ritz.html" | grep -oP '"price":"[^"]+"'

Arahan tunggal ini akan gagal 60-80% daripada masa jika proksi itu diketahui oleh perkhidmatan pengesanan bot seperti DataDome atau Akamai. Kadar kegagalan menurun hanya apabila anda menggabungkan putaran proksi dengan kegigihan sesi dan cap jari pengepala yang sepadan dengan ISP sebenar proksi.

Pengesanan Bot Anti-Penipuan: Kesempitan Sebenar

Platform pelancongan dan SaaS melabur besar dalam pengesanan bot. Mereka menyemak bukan sahaja reputasi IP tetapi juga cap jari jabat tangan TLS (JA3), tetapan HTTP/2, kegelisahan masa, dan susunan pengepala HTTP. Proksi yang lulus satu semakan mungkin gagal pada semakan lain. Contohnya, proksi pusat data dengan IP bersih tetapi tandatangan JA3 yang sepadan dengan alat pengikis yang diketahui akan disekat serta-merta. Proksi kediaman tidak kebal — banyak yang diperoleh daripada peranti yang dijangkiti dan muncul dalam senarai hitam. Strategi paling berkesan adalah menggunakan kolam proksi khusus yang telah anda uji terhadap timbunan pengesanan laman sasaran. Jangkakan kadar kejayaan 10-20% setiap proksi walaupun dalam keadaan ideal. Ini bermakna anda memerlukan sekurang-kurangnya 5-10 proksi setiap rantau sasaran untuk mengekalkan kadar pengikisan yang stabil iaitu satu permintaan setiap 5-10 saat.

Di sinilah pertukaran yang menyakitkan: kualiti proksi yang lebih tinggi (kediaman, IP statik, reputasi tinggi) berharga 10x lebih mahal daripada proksi pusat data, tetapi kadar kejayaan mungkin hanya berganda. Untuk operasi pemantauan harga yang melibatkan 100 SKU sejam merentasi 10 rantau, bil proksi bulanan boleh melebihi $2,000. Alternatif — menggunakan proksi awam percuma — adalah mustahil kerana IP mereka sudah ditandakan oleh setiap perkhidmatan anti-bot utama. Satu permintaan dari proksi percuma akan mencetuskan CAPTCHA atau respons 403.

Aliran Kerja Praktikal: Had Kadar, Penyejukan IP, dan Pengendalian Ralat

Pengikis anda mesti melaksanakan mesin keadaan bagi setiap IP proksi. Selepas permintaan berjaya, proksi memasuki tempoh penyejukan — 30 saat untuk laman hotel, 60 saat untuk panel pentadbiran SaaS. Selepas kegagalan (HTTP 403, 429, atau halaman CAPTCHA), penyejukan dilanjutkan kepada 5 minit dan proksi ditandakan untuk penilaian semula. Gunakan penghad kadar baldi token yang menguatkuasakan had global, katakan, 2 permintaan sesaat merentasi semua proksi. Coretan Python berikut (menggunakan asyncio dan aiohttp) menunjukkan gelung teras:

import asyncio, aiohttp, random

PROXY_POOL = [{"url": "http://user:pass@fr1:3128", "cooldown_until": 0}]

async def fetch_price(session, proxy, url):
    now = asyncio.get_event_loop().time()
    if now < proxy["cooldown_until"]:
        await asyncio.sleep(proxy["cooldown_until"] - now)
    try:
        async with session.get(url, proxy=proxy["url"],
                               headers={"Accept-Language": "fr-FR"}) as resp:
            if resp.status == 200:
                proxy["cooldown_until"] = now + 30
                return await resp.text()
            else:
                proxy["cooldown_until"] = now + 300
                return None
    except Exception:
        proxy["cooldown_until"] = now + 300
        return None

Tambah undur eksponen untuk kegagalan berturut-turut dari proksi yang sama — selepas tiga ralat, persarakan IP tersebut selama 24 jam. Pantau nisbah respons berjaya kepada jumlah percubaan; jika ia jatuh di bawah 20% untuk sesuatu rantau, putar keseluruhan kolam proksi untuk negara tersebut. Akhir sekali, log setiap pengepala respons, terutamanya Set-Cookie dan X-Frame-Options, kerana ia mendedahkan sama ada laman tersebut menjalankan skrip pengesanan bot yang memerlukan pelaksanaan JavaScript. Untuk laman yang bergantung pada rendering sisi pelanggan, anda mesti beralih kepada pelayar tanpa kepala seperti Playwright atau Puppeteer, yang menambah satu lagi urutan magnitud kepada kependaman dan kos proksi. Pemantauan harga merentas rantau bukan projek hujung minggu — ia adalah pelaburan kejuruteraan berterusan yang menuntut penalaan berterusan terhadap sasaran yang bergerak.