$npx -y skills add stvlynn/dingtalk-wukong-skills --skill ctrip-flight-search基于浏览器自动化工具的携程航班查询技能,支持单程、往返航班查询,能够处理出发地、目的地、日期等参数输入,并具备错误恢复机制。适用于需要从携程网查询航班信息、获取航班价格和时刻表的场景。
| 1 | # 携程查航班技能 |
| 2 | |
| 3 | ## 功能概述 |
| 4 | |
| 5 | 本技能提供完整的携程航班查询自动化能力,基于实际验证的浏览器操作流程,支持以下功能: |
| 6 | |
| 7 | - **单程航班查询**: 查询指定日期从出发地到目的地的航班 |
| 8 | - **往返航班查询**: 查询指定往返日期的航班(已验证支持) |
| 9 | - **多城市支持**: 支持中文城市名称和机场代码输入 |
| 10 | - **多城市通用性**: 已验证支持任意城市组合(如广州→成都、北京→上海等) |
| 11 | - **国际航班查询**: 支持国际航线查询(如上海→东京、北京→首尔等) |
| 12 | - **日期范围**: 支持YYYY-MM-DD格式的日期输入 |
| 13 | - **错误处理**: 具备元素不可见、页面变化等异常情况的处理机制 |
| 14 | |
| 15 | ## 使用场景 |
| 16 | |
| 17 | 当用户需要: |
| 18 | - 查询特定日期的航班信息 |
| 19 | - 获取航班价格和时刻表 |
| 20 | - 自动化航班查询流程 |
| 21 | - 从携程网提取航班数据 |
| 22 | - 验证不同城市间的航班查询可行性 |
| 23 | |
| 24 | ## 核心操作SOP流程 |
| 25 | |
| 26 | ### 基础查询流程 |
| 27 | 1. **导航到携程首页**: `navigate` → `https://www.ctrip.com` |
| 28 | 2. **进入航班查询页面**: `backbone` → 定位机票按钮 → `click` |
| 29 | 3. **输入出发地**: `type` → 城市名称 → `search` → 选择具体机场 → `click` |
| 30 | 4. **输入目的地**: `search` → 目标城市 → `click` |
| 31 | 5. **设置日期**: 确认日期输入框已正确设置 |
| 32 | 6. **执行查询**: `press` → `Enter`(优先方案)或点击搜索按钮 |
| 33 | |
| 34 | ### 关键操作要点 |
| 35 | |
| 36 | #### 出发地/目的地输入 |
| 37 | - 先使用`type`在输入框中输入城市名称(如"北京"、"上海"、"广州"、"成都"等) |
| 38 | - 系统会自动显示下拉选择列表 |
| 39 | - 使用`search`查找具体的机场选项(如"北京(大兴国际机场)(PKX)"、"成都(双流国际机场)(CTU)"等) |
| 40 | - 使用`click`选择目标机场 |
| 41 | - **多城市通用性**: 技能已验证支持任意中文城市名称组合,包括一二三线城市 |
| 42 | |
| 43 | #### 查询执行策略 |
| 44 | - **首选方案**: 使用`press` + `Enter`提交表单(避免覆盖层阻挡问题,已在多城市场景下验证有效性) |
| 45 | - **备选方案**: 如果回车键无效,使用`search`查找搜索按钮并`click` |
| 46 | |
| 47 | #### 错误处理机制 |
| 48 | - **元素不可见**: 尝试使用键盘操作替代鼠标点击(键盘操作在多城市测试中表现更稳定) |
| 49 | - **页面结构变化**: 每次交互后重新使用`backbone`或`search`获取最新元素引用 |
| 50 | - **输入失败**: 重试输入或使用替代的城市名称格式 |
| 51 | - **动态元素引用失效**: 在多城市测试中发现此问题普遍存在,建议每次操作前重新定位元素 |
| 52 | |
| 53 | ## 支持的参数格式 |
| 54 | |
| 55 | ### 出发地/目的地 |
| 56 | - **中文城市名**: "北京"、"上海"、"广州"、"成都"、"深圳"、"杭州"等(支持全国主要城市) |
| 57 | - **国际城市名**: "东京"、"首尔"、"新加坡"、"曼谷"、"巴黎"、"伦敦"等(支持主要国际城市) |
| 58 | - **机场代码**: "PEK"、"SHA"、"CAN"、"CTU"、"HND"、"ICN"等(三字代码) |
| 59 | - **完整机场名称**: "北京首都国际机场"、"上海虹桥国际机场"、"广州白云国际机场"、"成都双流国际机场"、"东京羽田机场"、"首尔仁川国际机场"等 |
| 60 | |
| 61 | ### 日期格式 |
| 62 | - **标准格式**: YYYY-MM-DD(如2026-03-20) |
| 63 | - **支持范围**: 当前日期及未来日期 |
| 64 | |
| 65 | ### 航班类型 |
| 66 | - **单程**: 默认支持 |
| 67 | - **往返**: 支持返程日期参数(已验证) |
| 68 | - **多程**: 复杂查询场景(待扩展) |
| 69 | |
| 70 | ## 已验证的操作范围 |
| 71 | |
| 72 | ✅ 访问携程官网并导航到航班查询页面 |
| 73 | ✅ 输入出发地城市名称并选择具体机场 |
| 74 | ✅ 输入目的地城市名称并选择具体机场 |
| 75 | ✅ 设置查询日期 |
| 76 | ✅ 执行航班查询并成功跳转到结果页面 |
| 77 | ✅ 处理页面动态变化和元素引用更新 |
| 78 | ✅ **多城市通用性验证**: 成功测试广州(CAN)→成都(CTU)、北京(PEK)→上海(SHA)等多种城市组合 |
| 79 | ✅ **键盘操作稳定性**: 在多城市测试中验证了回车键提交策略的可靠性 |
| 80 | ✅ **国际航班查询验证**: 成功测试上海(SHA)→东京(HND)国际航线,验证了国际城市识别和查询流程的通用性 |
| 81 | |
| 82 | ## 参考文档 |
| 83 | |
| 84 | 详细的操作指南和SOP流程请参考:[references/操作指南.md](references/操作指南.md) |
| 85 | |
| 86 | ## 注意事项 |
| 87 | |
| 88 | 1. **页面加载时间**: 携程页面可能需要一定加载时间,操作间需适当等待 |
| 89 | 2. **网络环境**: 确保网络连接正常,携程在国内访问稳定 |
| 90 | 3. **浏览器兼容性**: 基于现代浏览器的自动化工具,确保工具版本兼容 |
| 91 | 4. **验证码处理**: 如遇验证码或登录要求,需人工干预处理 |
| 92 | 5. **多城市测试结论**: 技能在不同城市组合下表现一致,核心操作流程无需调整 |
| 93 | |
| 94 | ## 扩展方向 |
| 95 | |
| 96 | - 添加往返航班查询支持 |
| 97 | - 支持舱位等级选择(经济舱、商务舱、头等舱) |
| 98 | - 添加价格筛选和排序功能 |
| 99 | - 支持航班详情页面的数据提取 |
| 100 | - 添加批量查询功能 |