用途:通过 Patchright(Playwright 的反检测分支)自动化 American Express 旅行门户,搜索航班和酒店,返回现金价格、MR 积分定价、国际航空计划(IAP)折扣以及 Fine Hotels & Resorts / The Hotel Collection 权益,用于比较门户积分兑换价值与转点价值。
主要能力:航班搜索支持单程、往返、舱位(economy/premium/business/first)和 JSON 输出;酒店搜索支持入住/退房日期与 JSON 输出;可识别 IAP 票价(PEP 类型,商务/头等常见 10-15% 折扣)和 FHR/THC 权益(早餐、消费额度、升级等);提供录制模式做 API 发现,以及用 --parse-html 离线重解析酒店结果;登录支持保存 profile 与设备信任后跳过 2FA。
使用方式:安装 pip install patchright && patchright install chromium,或使用官方 Docker 镜像。本地运行示例:python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11;酒店示例:python3 scripts/search_flights.py --hotel --dest "Oslo" --checkin 2026-08-13 --checkout 2026-08-15。需设置环境变量 AMEX_USERNAME、AMEX_PASSWORD;2FA 时将验证码写入 /tmp/amex-2fa-code.txt,或配置 AMEX_2FA_COMMAND。
限制:Amex 检测无头浏览器,必须 headed 运行(headless=False),macOS 会短暂弹出 Chrome 窗口,后台可用 Docker+xvfb。每次搜索约 45 秒。门户登录门(2026 年 5 月起)有时通过、有时被静默拦截;遇到 AMEX_HUMAN_LOGIN_NEEDED 需用户本地运行 python3 scripts/refresh_login.py 手动登录刷新会话。酒店仅能通过 DOM 解析,依赖 data-testid 选择器。IAP 与 FHR 权益需 Platinum 卡。本工具仅查找,不完成预订。