flight-ticket-search
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFlight Ticket Search
机票搜索
What this skill does
该Skill的功能
fast-flights제공 기능:
- 편도/왕복 항공권 검색
- Google Flights 예약 검색 링크 생성
- 상위 후보 가격, 항공사, 출도착 시간, 소요시간, 경유 수 정리
- 날짜 범위, 월별, 연도별 샘플 비교
- 최저가, 평균가, 최고가 및 /
low/typical가격 band 요약high
예약 링크는 특정 판매자 결제 deep link가 아니라 Google Flights 검색 결과 링크다. 실제 구매·결제·좌석 선택은 사용자가 브라우저에서 직접 진행해야 한다.
基于查询Google Flights的公开搜索结果,整理航班候选信息。无需API密钥、登录、支付或绕过CAPTCHA,仅使用免费公开界面。
fast-flights提供功能:
- 单程/往返机票搜索
- 生成Google Flights预订搜索链接
- 整理候选航班的价格、航空公司、起降时间、耗时、经停次数
- 按日期范围、月份、年份进行样本对比
- 汇总最低价、均价、最高价以及/
low/typical价格区间high
预订链接并非特定卖家的支付深度链接,而是Google Flights搜索结果链接。实际购买、支付、选座需由用户在浏览器中自行操作。
When to use
使用场景
- "항공권 조회해줘"
- "인천에서 나리타 다음 달 최저가"
- "6월 ICN-NRT 월별 비교"
- "올해랑 내년 6월 1일 항공권 가격 비교"
- "서울에서 도쿄 왕복 예약 링크 줘"
- "ICN-LAX 비즈니스 가격 대략 비교해줘"
- "帮我查询机票"
- "仁川到成田下个月的最低价"
- "6月ICN-NRT的月度对比"
- "今年和明年6月1日的机票价格对比"
- "给我首尔到东京的往返预订链接"
- "帮我大致对比ICN-LAX的商务舱价格"
When not to use
不适用场景
- 실제 예약/결제/취소/좌석지정 자동화
- 로그인 회원가, 카드 할인, 쿠폰, 마일리지 적용가 확정
- CAPTCHA, fingerprint, bot-block 우회
- 스카이스캐너 직접 조회. 현재 은 기본 접속부터 CAPTCHA/403이 걸리므로 안정 skill provider로 쓰지 않는다.
skyscanner.net
- 实际预订/支付/取消/选座自动化
- 确认登录会员、信用卡折扣、优惠券、里程抵扣后的价格
- 绕过CAPTCHA、指纹验证、机器人拦截
- 直接查询Skyscanner。目前从基础访问阶段就会触发CAPTCHA/403拦截,因此不适合作为稳定的Skill数据源。
skyscanner.net
Required inputs
必填输入
최소 입력:
- 출발 공항 IATA 코드: ,
ICN,GMP등PUS - 도착 공항 IATA 코드: ,
NRT,HND등LAX - 출발일 또는 비교할 월/범위
YYYY-MM-DD
선택 입력:
- 왕복 귀국일
YYYY-MM-DD - 성인 수, 기본 1명
- 좌석 등급: ,
economy,premium-economy,businessfirst - 비교 샘플 방식: 월별 또는
weeklydaily
사용자가 도시명만 말하면 IATA 코드를 추론하되 애매하면 확인한다. 흔한 기본값은 다음처럼 처리한다.
- 서울/인천 국제선:
ICN - 서울 국내선/제주: 우선, 사용자가 인천을 말하면
GMPICN - 도쿄: 나리타 또는 하네다
NRT중 사용자가 지정하지 않으면 둘 중 하나를 확인한다.HND - 제주:
CJU
最小输入:
- 出发机场IATA代码: ,
ICN,GMP等PUS - 到达机场IATA代码: ,
NRT,HND等LAX - 出发日期或需对比的月份/范围
YYYY-MM-DD
可选输入:
- 往返返程日期
YYYY-MM-DD - 成人数量,默认1人
- 座位等级: ,
economy,premium-economy,businessfirst - 对比样本方式:月度(每周)或
weekly(每日)daily
若用户仅提供城市名称,则自动推断IATA代码;若存在歧义,则向用户确认。常见默认值处理如下:
- 首尔/仁川国际航线:
ICN - 首尔国内线/济州:优先使用,若用户指定仁川则使用
GMPICN - 东京:若用户未指定,则在成田或羽田
NRT中选择其一并向用户确认HND - 济州:
CJU
Helper script
辅助脚本
이 skill은 저장소 내 helper를 직접 실행한다.
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py --help최초 실행 시 에 를 설치하고 그 venv로 재실행한다. 저장소에는 의존성 vendoring이나 API key를 넣지 않는다.
~/.cache/k-skill/flight-ticket-search/venvfast-flights==2.2该Skill直接运行仓库内的辅助脚本。
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py --help首次运行时,会在中安装,并使用该虚拟环境重新运行。仓库中不包含依赖包或API密钥。
~/.cache/k-skill/flight-ticket-search/venvfast-flights==2.2Single search
单次搜索
편도:
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py search \
--from ICN \
--to NRT \
--date 2026-06-01 \
--adults 1 \
--seat economy \
--limit 5 \
--format markdown왕복:
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py search \
--from ICN \
--to NRT \
--date 2026-06-01 \
--return-date 2026-06-08 \
--adults 1 \
--seat economy \
--limit 5응답 주요 필드:
- — Google Flights 예약 검색 링크
meta.booking_search_url - — Google이 표시하는
meta.price_band/low/typical가격 bandhigh - ,
stats.min_price,stats.avg_pricestats.max_price - ,
flights[].name,departure,arrival,duration,stopsprice_text - —
flights[].quality또는completepartial
单程:
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py search \
--from ICN \
--to NRT \
--date 2026-06-01 \
--adults 1 \
--seat economy \
--limit 5 \
--format markdown往返:
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py search \
--from ICN \
--to NRT \
--date 2026-06-01 \
--return-date 2026-06-08 \
--adults 1 \
--seat economy \
--limit 5响应主要字段:
- — Google Flights预订搜索链接
meta.booking_search_url - — Google显示的
meta.price_band/low/typical价格区间high - ,
stats.min_price,stats.avg_pricestats.max_price - ,
flights[].name,departure,arrival,duration,stopsprice_text - —
flights[].quality(完整)或complete(部分)partial
Monthly comparison
月度对比
월별 비교는 지정 월의 날짜들을 실제 검색해 각 날짜의 최저가/평균가를 비교한다.
빠른 기본값은 주 1회 샘플링이다.
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-month \
--from ICN \
--to NRT \
--month 2026-06 \
--sample weekly \
--limit 5일별 전체 조회가 필요하면 를 쓴다. 다만 28~31회 요청이 발생하므로 rate limit을 위해 을 1.5초 이상 유지한다.
--sample daily--sleepbash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-month \
--from ICN \
--to NRT \
--month 2026-06 \
--sample daily \
--sleep 2 \
--limit 10월별 비교 응답:
- — 샘플 날짜 중 최저가
stats.min_price - — 날짜별 최저가의 평균
stats.avg_of_daily_min - — 날짜별 최저가 중 최고값
stats.max_of_daily_min - — 가장 싼 날짜와 예약 검색 링크
cheapest_dates[] - — 날짜별 성공/실패 및 요약
rows[]
月度对比会实际搜索指定月份的日期,对比各日期的最低价/均价。
默认快速采样为每周1次。
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-month \
--from ICN \
--to NRT \
--month 2026-06 \
--sample weekly \
--limit 5若需每日全量查询,可使用。但会产生28~31次请求,因此为避免速率限制,需设置为1.5秒以上。
--sample daily--sleepbash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-month \
--from ICN \
--to NRT \
--month 2026-06 \
--sample daily \
--sleep 2 \
--limit 10月度对比响应:
- — 样本日期中的最低价
stats.min_price - — 每日最低价的平均值
stats.avg_of_daily_min - — 每日最低价中的最高价
stats.max_of_daily_min - — 最便宜的日期及预订搜索链接
cheapest_dates[] - — 每日查询的成功/失败状态及摘要
rows[]
Custom range comparison
自定义范围对比
사용자가 "다음주부터 2주간", "6월 1일부터 20일까지"처럼 범위를 주면 날짜 범위 비교를 사용한다.
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-range \
--from ICN \
--to BKK \
--start-date 2026-06-01 \
--end-date 2026-06-20 \
--step-days 3 \
--limit 5--step-days 17当用户提供“下周起2周”“6月1日至20日”这类范围时,使用日期范围对比功能。
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-range \
--from ICN \
--to BKK \
--start-date 2026-06-01 \
--end-date 2026-06-20 \
--step-days 3 \
--limit 5--step-days 17Year comparison
年度对比
연도 비교는 같은 월일을 여러 연도에 대해 조회한다.
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-years \
--from ICN \
--to NRT \
--years 2026,2027 \
--month-day 06-01 \
--limit 5주의: Google Flights가 너무 먼 미래 날짜를 표시하지 않으면 해당 연도는 실패로 기록한다. 실패한 날짜를 숨기지 말고 에 같이 보고한다.
failures年度对比会查询不同年份的同一月日的机票信息。
bash
python3 flight-ticket-search/scripts/flight_ticket_search.py compare-years \
--from ICN \
--to NRT \
--years 2026,2027 \
--month-day 06-01 \
--limit 5注意:若Google Flights不显示过远未来的日期,则该年份的查询会标记为失败。不要隐藏失败日期,需在中一并上报。
failuresReservation link policy
预订链接规则
- 은 Google Flights 검색 URL이다.
booking_search_url - 특정 항공사/OTA 결제 단계 deep link를 자동 추출하거나 클릭하지 않는다.
- 결제·예약 확정·로그인·여권 정보 입력은 skill 범위 밖이다.
- 사용자가 예약까지 원하면 링크를 열어 직접 확인하도록 안내한다.
- 为Google Flights搜索URL。
booking_search_url - 不会自动提取或点击特定航空公司/OTA的支付阶段深度链接。
- 支付、预订确认、登录、护照信息输入均不属于Skill的处理范围。
- 若用户需要完成预订,需引导其打开链接自行操作。
Response style
响应格式
대표님에게는 짧게 핵심부터 보고한다.
좋은 형식:
text
ICN → NRT / 2026-06-01 / 성인 1명 / economy
가격 band: typical
최저/평균/최고: ₩129,800 / ₩254,000 / ₩684,400
예약 검색 링크: <url>
1. Jeju Air — 09:45 → 12:15 / 2h30m / 직항 / ₩129,800
2. Air Seoul — 09:20 → 11:50 / 2h30m / 직항 / ₩143,500
3. Air Premia — 08:50 → 11:20 / 2h30m / 직항 / ₩160,800월별 비교:
text
ICN → NRT / 2026-06 weekly 샘플
최저: 6/1 ₩129,800
샘플 평균: ₩142,300
비싼 날: 6/22 ₩188,000
싼 날짜 TOP 3
1. 2026-06-01 — ₩129,800
2. 2026-06-08 — ₩135,000
3. 2026-06-15 — ₩144,000파싱 누락 후보는 숨기지 말고 이렇게 표시한다.
text
항공편 상세 확인 불가 — 시간 확인 불가 / 가격 ₩228,700
※ Google Flights 응답에서 항공사·시간 파싱이 일부 누락됐습니다.向用户汇报时需简洁,先展示核心信息。
推荐格式:
text
ICN → NRT / 2026-06-01 / 成人1名 / economy
价格区间: typical
最低/平均/最高: ₩129,800 / ₩254,000 / ₩684,400
预订搜索链接: <url>
1. 济州航空 — 09:45 → 12:15 / 2小时30分 / 直飞 / ₩129,800
2. 首尔航空 — 09:20 → 11:50 / 2小时30分 / 直飞 / ₩143,500
3. Air Premia — 08:50 → 11:20 / 2小时30分 / 直飞 / ₩160,800月度对比:
text
ICN → NRT / 2026-06 weekly采样
最低: 6/1 ₩129,800
样本平均: ₩142,300
高价日期: 6/22 ₩188,000
低价日期TOP3
1. 2026-06-01 — ₩129,800
2. 2026-06-08 — ₩135,000
3. 2026-06-15 — ₩144,000对于解析失败的航班候选,不要隐藏,需按如下方式展示:
text
航班详情无法确认 — 时间未知 / 价格 ₩228,700
※ Google Flights响应中部分航空公司、时间信息解析失败。Failure modes
失败场景
- Google Flights HTML/프론트엔드 구조 변경으로 항공사명·시간 파싱이 비거나 깨질 수 있다.
- 일부 노선은 가격만 나오고 항공편 상세가 로 떨어질 수 있다.
partial - 잘못된 IATA 코드, 동일 출도착 공항, 실제 항공편이 없는 구간은 실패한다.
- 너무 먼 미래 날짜는 upstream에서 결과가 없을 수 있다.
- 비교 기능은 날짜별 실시간 조회라 요청 수가 많다. daily 월별 비교는 30회 안팎의 요청이 발생한다.
- fallback이 외부 fetch helper를 쓰는 경우 401
fast-flights가 날 수 있다. 동일 입력의 실사용성이 낮은 케이스면 사전 validation으로 막고, 정상 노선이면 잠시 후 재시도한다.no token provided
- 若Google Flights的HTML/前端结构发生变化,可能导致航空公司名称、时间解析为空或出错。
- 部分航线可能仅显示价格,航班详情为(部分)状态。
partial - 无效IATA代码、出发到达机场相同、无实际航班的航线会查询失败。
- 过远未来的日期可能无法从上游获取结果。
- 对比功能需按日期实时查询,请求量较大。每日月度对比会产生约30次请求。
- 若的降级方案使用外部fetch辅助工具,可能会出现401
fast-flights错误。对于实际可用性低的输入场景,需通过预验证拦截;对于正常航线,需在短暂等待后重试。no token provided
Verified discovery notes
验证测试记录
2026-05-10 로컬 프로브 기준:
- Skyscanner home/API: CAPTCHA/403 blocked로 직접 provider 부적합.
- Kiwi Tequila API: 무료 계정 API key 필요. 기본 무료/no-key 경로는 아님.
- Google Flights + : 국내선/일본/동남아/미국/유럽/호주/남미 일부 성공.
fast-flights==2.2 - 추가 테스트 성공: ,
ICN-CJU,ICN-NRT,ICN-PVG,ICN-SIN,ICN-BKK,ICN-DXB,ICN-LAX,ICN-JFK,ICN-LHR,ICN-CDG,ICN-FRA,ICN-HKG,ICN-TPE,ICN-SYD,ICN-GRU,ICN↔NRT, business, 성인 2명.GMP↔CJU - 정상 실패/차단 대상: ,
GMP-ICN, invalid airport code.ICN-ICN
基于2026-05-10本地测试:
- Skyscanner首页/API:触发CAPTCHA/403拦截,不适合直接作为数据源。
- Kiwi Tequila API:需要免费账户API密钥,无默认免费/无密钥访问路径。
- Google Flights + :国内线、日本、东南亚、美国、欧洲、澳洲、南美部分航线查询成功。
fast-flights==2.2 - 额外测试成功的航线:,
ICN-CJU,ICN-NRT,ICN-PVG,ICN-SIN,ICN-BKK,ICN-DXB,ICN-LAX,ICN-JFK,ICN-LHR,ICN-CDG,ICN-FRA,ICN-HKG,ICN-TPE,ICN-SYD,ICN-GRU,ICN↔NRT,商务舱,2名成人。GMP↔CJU - 正常失败/拦截的场景:,
GMP-ICN, invalid airport code.ICN-ICN
Done when
完成标准
- 출발/도착/날짜/좌석/인원 조건을 확인했다.
- 단일 검색이면 상위 후보와 예약 검색 링크를 제공했다.
- 비교 검색이면 샘플 방식과 최저/평균/최고, 싼 날짜 TOP을 제공했다.
- 가격은 조회 시점 기준이며 실제 결제가는 달라질 수 있음을 표시했다.
- 로그인/결제/CAPTCHA 우회는 하지 않았다.
- 确认了出发/到达/日期/座位/人数条件。
- 单次搜索时提供了候选航班及预订搜索链接。
- 对比搜索时提供了采样方式、最低/平均/最高价及低价日期TOP。
- 已说明价格为查询时的价格,实际支付价格可能有所不同。
- 未进行登录/支付/CAPTCHA绕过操作。