Bifrost Logo BifrostNetwork
返回博客文章列表
BifrostNetwork 架构团队

如何用住宅代理抓取真实的本地机票/酒店价格

航司和 OTA 的定价引擎会按地区甚至设备差异化报价——住宅 IP 地理定向如何还原用户看到的真实本地价格。

用美国 IP 和越南 IP 搜索同一趟航班,价格差异经常能达到 20%-40%。这不是 bug——航司和 OTA 的定价引擎会刻意按照感知到的出发地市场、结算货币、甚至设备指纹来差异化报价。

为什么不同地区价格不一样

航司会根据当地购买力、汇率折算、以及区域性的渠道分销协议来定价——只有从”看起来真的在本地”的 IP 发起请求,才能看到这个”真实本地价”。

为什么数据中心 IP 在这里行不通

航司和 OTA 网站普遍部署了 Akamai、PerimeterX 这类强力反爬系统,会对数据中心 ASN 网段做指纹识别。数据中心 IP 拿到的往往是通用报价(偏高)、验证码墙,或者直接被拦截——而不是真实的本地报价。

住宅代理 + 城市级定位

把国家级定位精确到城市级,并配合 sticky session(会话保持)——很多 OTA 在”搜索 → 选择 → 出价”这个多步骤流程中,一旦出口 IP 中途变化就会让会话失效——就能拿到当地真实旅客看到的价格:

import requests

session_id = "sess-8841"  # 整个搜索流程保持同一个出口 IP

proxies = {
    'http': f'socks5://resi.base_117f8a2e33-country-vn-city-hanoi-session-{session_id}:password@gate.bifrostnetwork.cc:9521',
    'https': f'socks5://resi.base_117f8a2e33-country-vn-city-hanoi-session-{session_id}:password@gate.bifrostnetwork.cc:9521'
}

response = requests.get('https://example-airline.com/api/search?from=SGN&to=HAN', proxies=proxies)
print(response.json())

实践建议

  • 每个目标国家采样 2-3 个城市取中位数——单一数据点可能只是限时促销价的孤例
  • 会话要保持到整个搜索到出价的完整流程结束,不能只保住第一次请求
  • 机票/酒店页面通常是轻量级 HTML/JSON——Eco 档位($0.5/GB)就能覆盖高频比价监控,不需要用到 Standard 档位的带宽