你是否想过为自己的网站添加强大的Google图片搜索功能?今天就让我们一起来看看如何使用Google Custom Search JSON API来实现这个目标!
一、什么是Custom Search JSON API?
Google Custom Search JSON API是Google提供的一项强大服务,它允许开发者以程序化的方式在自己的应用中检索和显示Google搜索结果。通过这个API,我们可以:
- 执行网页搜索
- 进行图片搜索
- 获取JSON格式的结果
- 自定义搜索范围和选项
最棒的是,Google每天会免费提供100次搜索查询配额,对于个人网站来说完全够用了!
二、前期准备工作
在开始编码之前,我们需要准备以下内容:
地址 https://developers.google.com/custom-search/v1/overview?hl=zh-cn
- 创建一个可编程搜索引擎(Programmable Search Engine)
- 获取搜索引擎ID(cx)
- 申请API密钥(API Key)
💡 小贴士:访问Google可编程搜索引擎控制台即可完成前两步,API密钥则需要在Google Cloud Console中创建。
三、具体实现步骤
1. 搭建服务器端
首先,我们使用Node.js + Koa框架搭建一个简单的服务器。以下是完整的服务器端代码:
const Koa = require('koa');
const Router = require('koa-router');
const cors = require('@koa/cors');
const serve = require('koa-static');
const axios = require('axios');
const path = require('path');
const app = new Koa();
const router = new Router();
// 启用跨域支持
app.use(cors());
// 配置静态文件服务
app.use(serve(path.join(__dirname, 'public')));
// 搜索API路由
router.get('/api/search', async (ctx) => {
const { query, page = 1, pageSize = 10 } = ctx.query;
const API_KEY = "你的API密钥";
const SEARCH_ENGINE_ID = "你的搜索引擎ID";
try {
const start = ((parseInt(page) - 1) * parseInt(pageSize)) + 1;
const url = `https://www.googleapis.com/customsearch/v1?key=${API_KEY}&cx=${SEARCH_ENGINE_ID}&q=${encodeURIComponent(query)}&searchType=image&num=${pageSize}&start=${start}`;
const response = await axios.get(url);
ctx.body = {
items: response.data.items || [],
totalResults: parseInt(response.data.searchInformation.totalResults),
currentPage: parseInt(page),
pageSize: parseInt(pageSize)
};
} catch (error) {
ctx.status = error.response?.status || 500;
ctx.body = { error: error.message };
}
});
app.use(router.routes()).use(router.allowedMethods());
// 启动服务器
const PORT = process.env.PORT || 3002;
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
四、使用注意事项
- 每天免费100次查询
- 付费用户每天最多10000次查询
- 每1000次查询收费5美元