← 返回
未分类 中文

Ticket Price Compare

Compare real-time flight and train ticket prices across major platforms with direct booking links, real-time train availability, and discount condition details.
实时比较主要平台上机票和火车票价格,提供直接预订链接、实时火车余票及优惠详情。
amurtiger01 amurtiger01 来源
未分类 clawhub v1.2.6 1 版本 100000 Key: 无需
★ 0
Stars
📥 518
下载
💾 0
安装
1
版本
#latest

概述

Ticket Price Compare - Multi-Platform Ticket Price Comparison

Overview

This skill enables real-time comparison of flight and train ticket prices. It fetches real-time train availability via 12306 (no API key needed), and uses Firecrawl to render Ctrip JS pages for detailed flight data when FIRECRAWL_API_KEY is set. It also generates direct search links for all major booking platforms and WeChat mini program quick links for convenient mobile search. Tequila/Amadeus APIs are available as optional fallbacks for users who already have keys. Discount conditions and restrictions are clearly listed separately.

Data Sources

Firecrawl + Ctrip (Primary for Flight Data, Optional API Key)

  • Uses Firecrawl's /v2/scrape API to render Ctrip's JavaScript-heavy flight search pages
  • PC page (primary): Returns individual flight numbers, times, aircraft types, and prices
  • Mobile H5 page (fallback): Returns price calendar with daily lowest prices across dates
  • Requires FIRECRAWL_API_KEY environment variable. Register at firecrawl.dev
  • Falls back gracefully to direct scraping if not configured

Ctrip Direct Scraping (No API Key Needed)

  • Attempts direct HTTP request to Ctrip flight search pages
  • No registration or API key required - works out of the box
  • Limited data: Ctrip renders pages via JavaScript, so direct scraping may not always return prices. In that case, platform links are provided for manual search.

12306 (Train Tickets, No API Key Needed)

  • Uses 12306 public leftTicket/queryZ endpoint for real-time train availability
  • Uses 12306 public queryTicketPrice endpoint for actual fares per seat type
  • Supports major Chinese cities with station code auto-mapping

Optional APIs (For Existing Key Holders Only)

  • Kiwi.com Tequila API: If TEQUILA_API_KEY is set (registration may no longer be available)
  • Amadeus API: If AMADEUS_CLIENT_ID + AMADEUS_CLIENT_SECRET are set (registration is closed)
  • These are used as fallbacks only when web scraping returns no results

Core Capabilities

1. Flight Ticket Search

python scripts/ticket_search.py "<departure>" "<arrival>" "<date>" flight
  • Domestic: python scripts/ticket_search.py "Beijing" "Shanghai" "2026-05-01" flight
  • International: python scripts/ticket_search.py "Shanghai" "Tokyo" "2026-06-15" flight

Data sources (in order of priority):

  1. Firecrawl + Ctrip PC page (if FIRECRAWL_API_KEY set) - Best quality: individual flights, times, aircraft, prices
  2. Firecrawl + Ctrip Mobile H5 (fallback) - Price calendar with daily lowest prices
  3. Ctrip Direct Scraping (no API key, limited data)
  4. Tequila API (if API key configured)
  5. Amadeus API (if API keys configured)

Covered domestic platforms: Ctrip, Qunar, Fliggy, Tongcheng, Tuniu

Covered international platforms: Skyscanner, Google Flights, Kayak, Momondo, Expedia, Booking.com

Covered airline official sites: 10 Chinese + 13 international airlines

2. Train Ticket Search with Real-Time Availability

python scripts/ticket_search.py "<departure>" "<arrival>" "<date>" train

Real-time data from 12306: Returns actual train schedules with:

  • Train code & type (High-Speed/EMU/Express/Fast)
  • Departure/arrival stations & times
  • Duration
  • Available seat types & counts (Business Class/First Class/Second Class/Hard Sleeper/Hard Seat etc.)
  • Actual fares per seat type

3. Combined Search (Flight + Train)

python scripts/ticket_search.py "<departure>" "<arrival>" "<date>" all

Train results are automatically excluded for international routes.

Output Sections

The script generates structured output with these sections (in order):

  1. Route Summary - Departure, arrival, date, route type
  2. Data Source Status - Whether Firecrawl/scraping/APIs returned live data
  3. Real-Time Flight Prices - Table of flight offers with prices (if available)
  4. Transfer Details - Multi-segment flight details (if any transfers)
  5. Flight Discount Conditions - Refund/change rules, baggage limits, cabin restrictions
  6. Real-Time Train Info - Table of actual trains with seat availability and fares (if domestic)
  7. Train Discount Conditions - Student tickets, child tickets, change rules
  8. Platform Links - Direct search URLs for all booking platforms
  9. Airline Official Sites - Direct links to airline websites
  10. WeChat Mini Program Quick Links - Mobile H5 links + WeChat mini program search tips for Ctrip/Fliggy/Tongcheng/Qunar and major airlines
  11. Search Tips - Route-specific advice

Discount Conditions

Always include the dedicated "Discount Conditions / Restrictions" section. Reference references/platforms_guide.md for detailed per-platform discount conditions. Load this file when:

  • User asks about specific discount conditions
  • Presenting results that include discounted fares
  • User asks which platform has the best deals for their situation

Workflow

  1. Collect query parameters: Get departure city, arrival city, and travel date. If date not specified, ask. Default ticket type to "all".
  1. Execute search: Run scripts/ticket_search.py with the parameters.
  1. Present results: Show the complete output from the script. IMPORTANT: Do NOT summarize or omit train ticket price information. Always include:
    • Train ticket prices - The "票价(余票)" column contains actual fares like 二等座¥305(有) / 一等座¥488(12). This is real-time pricing data from 12306 and MUST be shown to the user.
    • Flight prices (if available from Firecrawl, scraping, or API)
    • All platform links for comparison
    • Discount conditions section
    • Search tips
  1. If no flight prices returned: Inform the user that real-time flight prices could not be fetched automatically, and recommend clicking the platform links to compare prices manually. Always mention that 12306 train data with real-time prices is available for domestic routes.
  1. When user asks for "all" or combined search: Present train results and flight results side by side. Do NOT skip or truncate the train price table even when flight data is extensive.

Date Flexibility

If a user asks for "cheapest dates" or "price trends":

  • Run the script with multiple date parameters to compare
  • For domestic flights: Also suggest Ctrip/Qunar price calendar features
  • For international flights: Suggest Skyscanner "cheapest month" or Google Flights date grid

Important Notes

  • Primary method: Firecrawl + Ctrip (if API key set) - renders JS pages, gets detailed flight data
  • Fallback scraping: Direct Ctrip HTTP request - no API key needed, but limited data due to JS rendering
  • Fallback APIs: Tequila/Amadeus - only for users who already have keys; registration is closed for new users
  • Without any flight data: Platform search links are always provided (users click to see prices)
  • 12306 train data is always real-time (no API key needed)
  • SSL verification: All connections use full TLS verification. 12306 endpoints never bypass SSL — if certificate verification fails, train data is unavailable for that request but all other features (flight search, platform links) still work.
  • Firecrawl proxy: Uses proxy: "basic" for optimal reliability with Chinese booking sites
  • Prices vary in real-time; recommend checking 2-3 platforms for confirmation
  • Airline official websites sometimes offer exclusive prices not available on OTA platforms
  • Always remind users about potential discount conditions before booking

版本历史

共 1 个版本

  • v1.2.6 当前
    2026-05-02 08:50 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

life-service

Sonoscli

steipete
控制Sonos音箱(发现/状态/播放/音量/分组)
★ 57 📥 85,258
life-service

Weather

steipete
获取当前天气和预报(无需API密钥)
★ 459 📥 229,615
life-service

healthcheck

stellarhold170nt
使用 JSON 文件存储追踪饮水和睡眠
★ 11 📥 30,222