ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何在 Google CSE 免费套餐结束后构建搜索回退
教程

如何在 Google CSE 免费套餐结束后构建搜索回退

在 Google 自定义搜索引擎免费套餐于 2027 年 1 月关闭之前构建嵌入式搜索回退。通过一次功能交换迁移到 Scavio。

获取免费API密钥API文档

Google 自定义搜索引擎免费套餐仅限 50 个域名,并于 2027 年 1 月完全关闭。如果您的应用依赖 Google CSE 进行免费搜索,则您现在需要一个迁移计划。本教程构建一个后备层,该层首先尝试现有的 Google CSE,然后在 Google 返回错误或超出限制时路由到 Scavio。最后一步完全放弃了谷歌。 Scavio 每次查询的费用为 0.005 美元,免费套餐每月涵盖 250 个积分。

前置条件

  • Python 3.9+ 或 Node.js 18+
  • 现有的 Google CSE 集成
  • 来自 scavio.dev 的 Scavio API 密钥
  • 请求库 (Python) 或 fetch (Node.js)

操作指南

步骤 1: 审核您当前的 Google CSE 使用情况

在迁移之前,测量您发送的查询数量以及您使用的参数。这决定了成本并有助于将 Google CSE 字段映射到 Scavio 字段。

Python
import os

# Your existing Google CSE config
GOOGLE_CSE_KEY = os.environ.get('GOOGLE_CSE_KEY', '')
GOOGLE_CSE_CX = os.environ.get('GOOGLE_CSE_CX', '')

# Typical Google CSE call for reference
# GET https://www.googleapis.com/customsearch/v1
#   ?key=KEY&cx=CX&q=QUERY&num=10
#
# Returns: items[].title, items[].link, items[].snippet

# Map Google CSE fields to Scavio fields:
field_map = {
    'items[].title': 'organic_results[].title',
    'items[].link': 'organic_results[].link',
    'items[].snippet': 'organic_results[].snippet',
    'items[].pagemap': 'not available (use scrape instead)',
    'searchInformation.totalResults': 'not available',
}

for google_field, scavio_field in field_map.items():
    print(f'  {google_field:40s} -> {scavio_field}')

步骤 2: 构建双提供商搜索功能

创建一个搜索功能,首先尝试 Google CSE,并在出现任何错误、速率限制或空结果时回退到 Scavio。

Python
import requests, os, time

GOOGLE_KEY = os.environ.get('GOOGLE_CSE_KEY', '')
GOOGLE_CX = os.environ.get('GOOGLE_CSE_CX', '')
SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def search_google_cse(query: str, num: int = 10) -> list:
    if not GOOGLE_KEY or not GOOGLE_CX:
        return []
    resp = requests.get('https://www.googleapis.com/customsearch/v1',
        params={'key': GOOGLE_KEY, 'cx': GOOGLE_CX, 'q': query, 'num': num},
        timeout=10)
    if resp.status_code != 200:
        print(f'Google CSE error: {resp.status_code}')
        return []
    items = resp.json().get('items', [])
    return [{'title': r['title'], 'link': r['link'],
             'snippet': r.get('snippet', '')} for r in items]

def search_scavio(query: str, num: int = 10) -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'num_results': num})
    resp.raise_for_status()
    return [{'title': r['title'], 'link': r['link'],
             'snippet': r.get('snippet', '')} for r in resp.json().get('organic_results', [])]

def search(query: str, num: int = 10) -> dict:
    start = time.time()
    results = search_google_cse(query, num)
    if results:
        return {'results': results, 'provider': 'google_cse',
                'latency_ms': int((time.time() - start) * 1000), 'cost': 0}
    results = search_scavio(query, num)
    return {'results': results, 'provider': 'scavio',
            'latency_ms': int((time.time() - start) * 1000), 'cost': 0.005}

步骤 3: 并行测试两个提供商

通过两个提供商运行相同的查询,以验证 Scavio 在切换之前返回相同的结果。

Python
test_queries = [
    'best CRM software 2026',
    'python web scraping tutorial',
    'react server components explained',
]

for query in test_queries:
    google_results = search_google_cse(query, 5)
    scavio_results = search_scavio(query, 5)
    print(f'Query: {query}')
    print(f'  Google CSE: {len(google_results)} results')
    print(f'  Scavio:     {len(scavio_results)} results')
    if scavio_results:
        print(f'  Top Scavio: {scavio_results[0]["title"][:60]}')
    print()

步骤 4: 直接替换:完全删除 Google CSE

验证后,仅将您的搜索功能替换为 Scavio。这是您的迁移后状态——不依赖 Google。

Python
import requests, os

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def search(query: str, num: int = 10) -> list:
    """Drop-in replacement for Google CSE. Same return format."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'num_results': num})
    resp.raise_for_status()
    return [{'title': r['title'], 'link': r['link'],
             'snippet': r.get('snippet', '')} for r in resp.json().get('organic_results', [])]

# Usage is identical to before:
results = search('best CRM software 2026')
for r in results:
    print(f'{r["title"]}: {r["link"]}')
print(f'Cost: $0.005 per query, 250 free/month')

Python 示例

Python
import requests, os

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def search(query, num=10):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'num_results': num})
    resp.raise_for_status()
    return [{'title': r['title'], 'link': r['link'], 'snippet': r.get('snippet', '')}
            for r in resp.json().get('organic_results', [])]

results = search('best CRM software 2026')
for r in results:
    print(f'{r["title"]}: {r["link"]}')

JavaScript 示例

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

async function search(query, num = 10) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us', num_results: num })
  });
  const data = await resp.json();
  return (data.organic_results || []).map(r => ({
    title: r.title, link: r.link, snippet: r.snippet || ''
  }));
}

search('best CRM software 2026').then(results =>
  results.forEach(r => console.log(`${r.title}: ${r.link}`)));

预期输出

JSON
Query: best CRM software 2026
  Google CSE: 0 results
  Scavio:     10 results
  Top Scavio: Best CRM Software of 2026 - Forbes Advisor

Cost: $0.005 per query, 250 free/month

相关教程

  • 如何摆脱 50 个域的 Google CSE 限制
  • 如何为最便宜的搜索提供商构建成本路由器
  • 如何构建多引擎搜索后备代理

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.9+ 或 Node.js 18+. 现有的 Google CSE 集成. 来自 scavio.dev 的 Scavio API 密钥. 请求库 (Python) 或 fetch (Node.js). Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

2026年Google CSE关停后的最佳免费搜索API

Read more
Best Of

最佳 Google Maps 商业数据 API(2026 年 5 月)

Read more
Glossary

免费搜索API层级对比

Read more
Comparison

Google CSE (Paid Tier) vs Third-Party SERP API (Scavio, SerpApi, Serper)

Read more
Solution

从Google CSE免费层零停机迁移

Read more
Workflow

将 Google CSE 集成迁移到搜索 API

Read more

开始构建

在 Google 自定义搜索引擎免费套餐于 2027 年 1 月关闭之前构建嵌入式搜索回退。通过一次功能交换迁移到 Scavio。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策