google custom search使用(一)

本系列主要讲述Google Custom Search API,主要内容来自于google官方文档。


功能介绍

google提供了一个非常cool的功能,允许你添加自定义的google搜索功能到你的网站中,这样网站的访问者就可以很方便的获得他们期望搜索的结果。


准备工作

得到一个google账号

首先,你要有一个google账号,如果没有,需要去https://accounts.google.com/NewAccount创建一个;

创建一个自定义的搜索引擎

其次,你需要创建一个google custom search,可以去http://www.google.com/cse/manage/create这里创建,创建时需要提供包含在搜索引擎中的站点等信息;

创建完毕你可以去Control Panel,其中的搜索引擎唯一标示符之后将用来做你的cx参数;

或者,你也可以创建一个链接的搜索引擎,这种搜索引擎指定类型的URL可以作为API中的cref参数使用;

得到应用的ID

最后,我们为了对google标识你的app,我们需要访问https://code.google.com/apis/console,并在Services面板中打开JSON/Atom Custom Search API选项;接着我们去API Access面板,得到我们的API key,之后我们可以在请求参数中使用key=yourAPIKey,这个key对于嵌入的URL是安全的,不需要重新编码;


开始之前


如果你对于自定义搜索引擎并不熟悉,建议您阅读前导章节,这两篇文章描述了你可以使用不同的方法,通过XML来配置来和自定义的搜索引擎互动:

Developer Guide

Programmers Guide


还有两个外部的文档资源对于使用这个API有帮助:

Google WebSearch Protocal(XML):google custom search API提供了一个可编程的XML API子集,但是返回值为JSON或Atom格式;

OpenSearch 1.1 Specification:该API使用了OpenSearch标准来描述搜索引擎和返回值。因为这个你可以编写支持OpenSearch引擎的代码,而不仅仅是google提供的自定义搜索引擎。由于目前OpenSearch没有JSON实现,所以所有的例子都是使用XML描述。


API操作

API仅支持HTTP的GET方法。

API数据模型

搜索返回的内容是JSON或者Atom对象并且包含三种类型的数据:

  • 描述请求及请求相关的元数据;
  • 描述自定义搜索的元数据;
  • 返回值;

数据模型基于OpenSearch 1.1标准,并且添加了一些标准的OpenSearch属性。Google Custom Search API定义了3个自定义属性和2个自定义查询角色:

自定义属性

cx: 自定义引擎的id;

cref:自定义引擎的url;

safe:返回结果安全搜索级别的过滤描述;


自定义查询角色

nextPage:定义查询结果下一逻辑页面;

previousPage:定义查询结果上一逻辑页面;


调用形式

有两种方式可以调用API:

REST方式

REST,全称是Representation State Transfer,Google Custom Search API和传统的REST有些不太一样。区别于传统方式提供的是资源的调用,GCS API提供的是对于服务的调用。API提供了一个URI作为服务节点调用来获取结果。

你可以使用标准的GET REST HTTP动作来获取Google Custom Search API服务节点,并且将你需要搜索的内容作为参数传入:

标准的搜索形式如下:

https://www.googleapis.com/customsearch/v1?parameters

其中{parameters}参数可以接收任何参数,以下是一个典型的例子:

GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures

JavaScript下的REST

你可以在JavaScript中使用REST方式调用GCS API,使用callback查询参数指定一个回调函数,这样可以避免你编写server端代码,而且仍然可以得到你想要的结果。

典型的例子如下:

<html>
  <head>
    <title>JSON/Atom Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function hndlr(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.htmlTitle should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.htmlTitle;
      }
    }
    </script>
    <script src="https://www.googleapis.com/customsearch/v1?key=YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=cars&callback=hndlr">
    </script>
  </body>
</html>

数据格式

GCS API可以返回两种数据格式的结果:JSON格式是默认数据格式,同样你也可以在请求参数中指定alt=atom返回Atom格式结果。


其他

目前google提供的custom search API版本为1的最新版,使用GCS API,你需要做的仅仅是发出一个请求,之后等着处理google返回的搜索结果吧。

google给免费用户提供了每天100次的搜索请求,如果你的应用程序需要更大的请求访问量,需要您付费。

google提供了几份文档:起步教程使用REST参考手册


<think>好的,用户想知道如何在浏览器或应用程序中添加自定义搜索引擎。我需要先理解这个问题的核心。自定义搜索引擎通常指的是让用户能够通过浏览器的搜索栏或应用程序内的搜索功能,使用特定的搜索引擎进行查询。比如,Chrome允许用户添加不同的搜索引擎,这样在地址栏输入关键词后可以直接搜索。 首先,我应该考虑不同浏览器的设置方法。比如,Chrome、Firefox、Edge等都有各自的添加方式。可能还需要提到基于Chromium的浏览器可能步骤类似。然后,对于应用程序,可能需要通过API集成,比如使用Google Custom Search JSON API或者Algolia等第三方服务。 接下来,我需要回忆相关知识。例如,在Chrome中添加自定义搜索引擎通常需要知道搜索引擎的URL结构,将搜索词替换为%s。例如,Google的搜索URL是https://www.google.com/search?q=%s。用户需要进入浏览器设置,找到搜索引擎管理部分,添加新的搜索引擎,设置关键词等步骤。 对于应用程序,开发者可能需要在前端设置表单,将用户输入的查询拼接到目标搜索引擎的URL中,或者使用API密钥进行认证,处理返回的JSON数据。例如,使用Google Custom Search API需要注册获取API密钥,然后发送HTTP请求,解析结果并展示。 还要注意引用中的内容。比如引用[2]提到登录后重定向到之前请求的页面,这可能和应用程序中的权限控制有关,但和当前问题关联不大。引用[5]提到创建Dialogflow代理,这可能和聊天机器人的搜索功能有关,但用户的问题更偏向于自定义搜索引擎的添加,可能需要简单提及集成到聊天机器人中的可能性。 用户可能需要分步骤的指导,包括浏览器端和应用程序端的不同方法。需要确保语言清晰,步骤准确。同时,生成的相关问题要符合用户可能进步询问的方向,比如浏览器的具体步骤、API的使用方法、自定义搜索引擎的最佳实践等。 最后,检查是否有遗漏,比如移动端浏览器的处理,或者常见问题如URL格式错误导致搜索失败。确保回答覆盖主要平台,并提供示例帮助用户理解。</think>### 如何添加自定义搜索引擎 #### 在浏览器中添加自定义搜索引擎 1. **Chrome浏览器** - 打开设置 → 管理搜索引擎 → 添加新搜索引擎 - 格式示例:搜索URL为 `https://example.com/search?q=%s`,其中 `%s` 表示用户输入的查询词 - 设置关键词(如 `ex`),之后在地址栏输入 `ex [空格] 查询词` 即可触发该引擎[^2] 2. **Firefox浏览器** - 访问目标搜索引擎的网站,右键点击其搜索框 → “添加关键词” - 自定义名称和关键词,保存后可通过关键词调用 3. **Edge浏览器** - 设置 → 隐私、搜索和服务 → 地址栏和搜索 → 管理搜索引擎 - 添加包含 `%s` 占位符的URL模板 #### 在应用程序中集成自定义搜索引擎 1. **基于API的集成**(以Google Custom Search为例) - 注册Google Cloud账号并启用Custom Search JSON API[^5] - 获取API密钥和搜索引擎ID - 发送请求示例: ```python import requests api_key = "YOUR_KEY" cx = "SEARCH_ENGINE_ID" response = requests.get(f"https://www.googleapis.com/customsearch/v1?q={query}&key={api_key}&cx={cx}") ``` 2. **前端实现** ```html <form action="https://example.com/search" method="GET"> <input type="text" name="q" placeholder="Search..."> <button type="submit">Search</button> </form> ``` #### 最佳实践 - 验证URL格式:确保占位符 `%s` 正确嵌入目标搜索引擎的查询参数 - 权限控制:涉及API调用时需实现认证机制,如OAuth2.0[^2][^4] - 结果渲染:处理API返回的JSON数据并设计友好的展示界面[^3]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值