机票和酒店价格是全网个性化最狠的价格之一。同一趟航班,会因访客所在国家、币种、设备、查询次数而显示不同价格。对票价聚合或旅游元搜索产品来说,单一抓取 IP 拿回的是被扭曲、无代表性的价格,而且几小时内就被封。旅游票价聚合代理让你规模化采集每个市场真实看到的价格。
本文讲清票价数据为何需要地理分布代理、航司与 OTA 如何价格歧视和封锁,以及如何把极豹接入票价采集管线。通用抽取技术见 网页抓取。
航司与 OTA(Booking、Expedia、Agoda)会按访客位置和币种显示不同票价。从一个国家抓,只拿到那个国家的价格,对服务全球用户的聚合产品毫无用处。地理定向住宅 IP 采到每个市场真实看到的票价。
票价数据商业价值高,旅游站用限速、验证码、机器人检测重点防守。单 IP 整天轮询票价会被快速封。轮换住宅池把请求分散,让每个 IP 都待在雷达之下。
有些站检测到同一访客重复查询就抬高显示票价——就是那个经典的「我还在犹豫价格就涨了」效应。轮换 IP 让每次查询都像新顾客,返回真实的入场价。
票价时刻在变,聚合产品要高频重抓数千条航线。这种请求量从一个 IP 出去就是秒封。大 IP 池把高频轮询变成可持续的吞吐。
地理定向住宅取准确票价:每条航线从出发市场的住宅 IP 请求,让显示价格和币种与真实本地用户一致。轮换池扛量:把高频重抓分散到大量 IP,没有单一地址触发限速。开放元搜索 API 用数据中心:防护轻的源走更便宜的 数据中心 IP 省流量成本。
每次请求切换代理出口国家,从多个市场采同一条航线。
import requests
ROUTE = "https://example-airline.com/api/fares?from=NYC&to=LON"
# 每个目标市场一个住宅出口
MARKETS = {
"us": "socks5h://USERNAME:[email protected]:913",
"gb": "socks5h://USERNAME:[email protected]:913",
"de": "socks5h://USERNAME:[email protected]:913",
}
def fare_by_market(market):
proxy = MARKETS[market]
r = requests.get(ROUTE, proxies={"http": proxy, "https": proxy}, timeout=30)
r.raise_for_status()
return r.json()
fares = {m: fare_by_market(m) for m in MARKETS}
数千航线的高频轮询见 Python 代理轮换;Cloudflare 后面的站配合 Cloudflare 绕过配方。
| 源 | 代理类型 | 原因 |
|---|---|---|
| 航司站、OTA | 住宅,地理定向 | 准确本地票价,过反爬 |
| 高频重抓 | 住宅(轮换) | 分散量级,避开限速 |
| 开放元搜索 API | 数据中心(轮换) | 防护轻,每 GB 最便宜 |
| 登录态会员票价 | 住宅(sticky) | 认证会话全程稳定 IP |
国家与城市级地理定向,覆盖 240+ 国家采集每个市场真实票价;9000 万+ 轮换住宅 IP支撑可持续的高频轮询;住宅与数据中心同一账号按源成本分层;SOCKS5/HTTP 适配 requests、Scrapy、aiohttp 等任意采集器;按 GB 付费,随每次轮询伸缩。
| 产品 | 价格 | 最适合 |
|---|---|---|
| 动态住宅 | $2/GB | 地理定向票价、反爬源 |
| 数据中心轮换 | $0.8/GB | 开放元搜索 API、高量 |
| 静态住宅 | $4/月/IP | 登录态会员票价追踪 |
新用户注册即送 500M免费流量,首充享 100% 翻倍。完整折扣见价格方案。
新用户注册即送500M免费流量,首次充值额外加赠,活动期间限时开放。