以下是一篇关于使用Google Custom Search JSON API进行搜索的简明技术指南:

利用Google Custom Search API实现搜索功能

Google Custom Search JSON API允许开发者将谷歌搜索功能集成到应用程序中。本指南将介绍其核心用法及代码实现。

一、API准备工作

1. 创建项目并启用API

– 访问[Google Cloud Console](https://console.cloud.google.com/),创建新项目。

– 在库中搜索并启用”Custom Search JSON API”。

2. 获取凭证

– 在”凭据”页面创建API密钥。

– 记录生成的密钥(如AIzaSyBx3…)。

3. 创建搜索引擎

– 访问[Programmable Search Engine](https://programmablesearchengine.google.com/)。

– 指定搜索范围(全网或特定站点),获得搜索引擎ID(如123456:abcdef)。

二、API请求基础

请求URL结构:

python

https://www.googleapis.com/customsearch/v1?key=API_KEY&cx=ENGINE_ID&q=QUERY

必需参数:

– key: API密钥

– cx: 搜索引擎ID

– q: 搜索关键词

可选参数:

– num: 每页结果数(1-10)

– start: 分页起始索引

– dateRestrict: 日期过滤(如m3最近三月)

三、Python实现示例

python

import requests

API_KEY = “your_api_key”

SE_ID = “your_search_engine_id”

def google_search(query, num=10, start=1):

url = “https://www.googleapis.com/customsearch/v1”

params = {

“key”: API_KEY,

“cx”: SE_ID,

“q”: query,

“num”: num,

“start”: start

}

try:

response = requests.get(url, params=params)

response.raise_for_status()

return response.json()

except requests.exceptions.RequestException as e:

print(f”Error: {e}”)

return None

使用示例

results = google_search(“人工智能发展”)

if results:

for item in results.get(“items”, []):

print(f”标题:{item[‘title’]}”)

print(f”链接:{item[‘link’]}n”)

四、处理搜索结果

典型响应结构:

json

{

“items”: [

{

“title”: “结果标题”,

“link”: “URL链接”,

“snippet”: “内容摘要”,

“pagemap”: { // 结构化数据(如果有)

“metatags”: [

{“og:description”: “…”}

]

}

}

],

“queries”: {

“nextPage”: [{“startIndex”: 11}] // 分页信息

}

}

五、高级技巧

1. 分页处理

python

def paginated_search(query, total=30):

all_results = []

max_pages = total // 10

for page in range(max_pages):

start = page 10 + 1

results = google_search(query, start=start)

if not results:

break

all_results.extend(results.get(“items”, []))

return all_results

2. 结果过滤

python

按域名过滤

filtered = [item for item in results[“items”]

if “example.com” in item[“link”]]

按日期排序(需启用排序参数)

params = {“sort”: “date:r:20250101:20251231″}

六、注意事项

1. 配额限制

– 免费版:每日100次请求

– 超额需在Cloud Console调整配额

2. 合规要求

– 禁止隐藏API凭证

– 需在搜索结果中标注”Powered by Google”

– 遵守 robots.txt 规则

3. 错误处理

– 429错误:请求过频,需添加重试机制

– 403错误:检查API密钥和权限设置

七、替代方案

对于需要大规模抓取的情况,可结合:

– 官方爬虫规范(需申请许可)

– 第三方解析库(如BeautifulSoup)

– 代理轮换机制(防范IP封禁)

通过合理使用API,开发者可以高效集成谷歌搜索功能,但需始终遵守服务条款。建议优先使用官方API,并定期查看[官方文档](https://developers.google.com/custom-search/v1/overview)获取最新规范。