You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SerpAPI结合Google Hotels获取预算内最贵酒店

获取Google Hotels预算内最贵酒店的SerpAPI解决方案

核心思路:绕过Google Hotels的排序限制,结合SerpAPI筛选+本地处理

Google Hotels本身不支持价格降序,且固定区间容易遗漏有效结果,核心解决思路是先获取所有预算内酒店,再本地排序;或通过动态调整筛选范围缩小目标集。


方案1:全量预算内结果+本地降序排序

这是最直接可靠的方法,步骤如下:

  1. SerpAPI仅设预算上限:调用时只传max_price参数(对应你的预算),不设置min_price,确保所有价格≤预算的酒店都被纳入结果。
  2. 提取并标准化价格字段:从返回的properties数组中,优先提取price.total(总价,包含税费/服务费,比每晚价格更准确),去掉货币符号、逗号等非数值字符,转成可排序的数值类型。
  3. 本地降序排序:对处理后的酒店列表按价格从高到低排序,取顶部结果即为预算内最贵的酒店。

代码示例(Python)

import serpapi

# 初始化SerpAPI客户端
client = serpapi.Client(api_key="YOUR_API_KEY")

# 基础搜索参数:仅设预算上限
search_params = {
    "engine": "google_hotels",
    "q": "Paris hotels",  # 目标地点
    "max_price": 800,     # 预算上限(单位:欧元,根据地区调整)
    "check_in": "2024-07-01",
    "check_out": "2024-07-05"
}

# 获取搜索结果
response = client.search(search_params)

# 处理价格并整理酒店数据
processed_hotels = []
for prop in response.get("properties", []):
    price_info = prop.get("price", {})
    total_price_str = price_info.get("total")
    if not total_price_str:
        continue  # 跳过无明确价格的酒店
    
    # 标准化价格:去掉货币符号和逗号,转成浮点数
    try:
        clean_price = float(total_price_str.replace("€", "").replace(",", ""))
        processed_hotels.append({
            "name": prop["name"],
            "price": clean_price,
            "url": prop["link"],
            "rating": prop.get("rating", "N/A")
        })
    except ValueError:
        continue  # 跳过价格格式异常的条目

# 按价格降序排序
sorted_hotels = sorted(processed_hotels, key=lambda x: x["price"], reverse=True)

# 输出预算内最贵的5家酒店
print("预算内最贵的酒店:")
for idx, hotel in enumerate(sorted_hotels[:5], 1):
    print(f"{idx}. {hotel['name']} - €{hotel['price']} | 评分:{hotel['rating']}")

方案2:动态调整价格区间缩小目标集

如果预算内酒店数量极多(分页成本高),可以通过动态调整筛选范围,让返回结果更集中在预算上限附近:

  1. 初始全量扫描:先调用一次仅设max_price的请求,获取所有预算内酒店的最高价格current_top_price。
  2. 判断是否缩小范围:如果current_top_price远低于预算(比如低于预算的80%),设置min_price = 预算 * 0.8,再次发起请求。
  3. 二次结果排序:对第二次返回的结果进行本地降序排序,取顶部即可得到接近预算上限的高价酒店。

关键细节

  • 调整比例可根据实际情况修改(70%-90%区间均可),避免因比例过高导致无结果返回。
  • 如果第二次请求无结果,立刻回退到初始全量结果处理。

注意事项

  • 分页处理:如果预算内酒店超过SerpAPI默认返回数量(通常10-20条),需要设置start参数(如start=20获取第二页),遍历所有分页后再统一排序,避免漏掉高价酒店。
  • 价格类型确认:务必提取total总价,而非per_night每晚价格,避免排序误差。
  • 货币格式兼容:不同地区价格格式不同(如美元带$、英镑带£),处理时要针对性替换符号。

内容的提问来源于stack exchange,提问作者Tomer Fikler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:50:14