airbnb-search

🏠 免密钥民宿智能搜索

基于 Airbnb 官方 API 的 CLI 工具,无需密钥即可快速获取房源价格与评分,助力旅行规划高效比价。

收藏
4.7k
安装
939
版本
0.1.4
CLS 安全性认证2026-05-17
点击查看完整报告 >

使用说明

airbnb-search 是一个基于 Python 的命令行工具,允许用户通过简单的 CLI 指令搜索 Airbnb 房源信息。用户无需注册 Airbnb 开发者账号或获取 API 密钥,工具内置了 Airbnb 网站前端使用的公开 API 密钥,可直接查询房源价格、评分、卧室数量及预订链接。支持通过 uv 工具直接运行而无需安装,提供入住/退房日期、价格区间、卧室数量等多维度筛选,输出支持表格和 JSON 两种格式,便于脚本集成或人工阅读。

该工具最大优势在于零配置开箱即用,消除了获取 API 密钥的门槛,适合临时性查询需求。采用硬编码的公开 API Key 意味着与 airbnb.com 网站相同的数据源,数据实时性和准确性有保障。灵活的参数系统支持精准筛选,而双模式输出(表格/JSON)既满足终端用户的可视化需求,也方便开发者进行数据分析和自动化处理。MIT 许可证保证了代码的可审计性和二次开发自由度。

潜在缺点主要集中在稳定性和合规性层面。工具依赖 Airbnb 内部 GraphQL API,一旦 Airbnb 更改接口结构或密钥失效,工具将立即失效。硬编码 API Key 虽然公开,但可能违反 Airbnb 服务条款中的自动化抓取限制,存在法律合规风险。作为 T3 级别的个人项目,长期维护承诺和更新响应速度存在不确定性。此外,功能仅限于搜索展示,不支持预订、支付或查看房东联系方式等后续操作。

该工具主要面向频繁规划旅行的数字游民、背包客及旅行博主,以及需要批量比较多个目的地住宿选项的用户。CLI 爱好者和开发者可通过 JSON 输出将房源数据集成到自动化工作流或旅行规划脚本中。对于需要快速获取市场价格数据以进行分析的研究人员或小型旅行社也是实用工具。不适合普通消费者作为日常预订工具,因其缺乏图形界面和直接预订功能。

使用风险方面,过度频繁的查询可能触发 Airbnb 的速率限制(rate limiting),导致临时封禁。依赖风险体现在单一外部 API 依赖,无本地缓存或备用方案。合规风险包括可能违反 Airbnb 服务条款关于自动化访问的规定。虽然当前代码无恶意行为,但作为个人维护项目,需警惕未来更新中可能引入的安全风险。

安全解读

核心用法

airbnb-search 是一款轻量级命令行工具,用于搜索 Airbnb 房源信息。用户通过指定目的地、入住/退房日期、价格区间、卧室数量等参数,即可快速获取房源列表,包含价格、评分、评论数和直接预订链接。支持 JSON 和表格两种输出格式,便于脚本集成或人工阅读。

uv run --with requests scripts/airbnb-search.py "Steamboat Springs, CO" \
  --checkin 2025-03-01 --checkout 2025-03-03 --max-price 500 --json

显著优点

  • 零配置即用:无需注册 Airbnb 账号或申请 API key,内置 Airbnb 公共前端 API key(与官网浏览器端一致),开箱即用
  • 信息完整:返回总价格(含清洁费)、评分、评论数、卧室/卫浴数量、直接预订链接,决策信息充分
  • 依赖极简:仅依赖 requests 标准库,安装快速,无臃肿依赖树
  • 格式灵活:支持美观表格输出和机器可读 JSON,兼顾交互与自动化场景

潜在缺点与局限性

  • API 稳定性风险:依赖 Airbnb 未公开的内部 GraphQL API,Airbnb 可随时变更接口导致工具失效
  • 功能边界明确:仅支持搜索和列表展示,不支持预订、支付、房东沟通等后续操作
  • 无官方保障:非 Airbnb 官方工具,房源信息以 Airbnb 官网为准,可能存在延迟或差异
  • 个人维护:T3 来源级别,更新节奏依赖单一维护者

适合人群

  • 需要批量比价或快速筛选房源的旅行者
  • 开发旅游相关自动化工作流的开发者
  • 数据分析师研究民宿市场定价趋势
  • 不愿注册 Airbnb API 的临时用户

常规风险

  • 服务中断:Airbnb API 变更可能导致工具临时失效,需关注仓库更新
  • 速率限制:频繁调用可能触发 Airbnb 限流,建议合理控制请求频率
  • 数据时效:房源价格和可用性实时变化,搜索结果仅供参考,以实际预订页面为准

airbnb-search 内容

airbnb_search文件夹
scripts文件夹
tests文件夹
手动下载zip · 13.7 kB
__init__.pytext/plain
请选择文件