Django 开发中使用 Google custom search API

我们的网站通常都要集成搜索服务。通常情况下,我们都使用自己的搜索后端,例如使用Django,对于Python,我们主要有两种选择,一种是Whoosh,它是纯Python写成的搜索后端;另一种则是著名的Lucene的Python扩展,PyLucene,要提醒使用PyLucene,需要安装JVM。以后的文章我会介绍他们。

不过,今天的主角显然不是它们。因为有时候,我们并不需要这么麻烦,有时我们只需要集成一个Google搜索在其中就可以了。那么,Google custom search就派上了用场。在这里,我们也有三种方案:

  1. 用iframe版本的cse,使用这种方式,甚至不需要写什么代码。
  2. 使用Google ajax API,使用ajax方式获取搜索结果,然后用js将结果呈现在页面上。
  3. 使用Custom search API,在后端使用Python的http编程,远程获取json方式的结果,并把数据渲染到模板中。

在一切开始之前,必须先创建一个新的自定义搜索。在cse页面上,点击“Create a Custom Search Engine”,如果已经新建过了,点击下面的“manage your existing search engines”。

cse

创建或进入管理界面以后,在“Control panel”中可以得到Search engine unique ID,常常用cx标记。在Control panel中有众多设置,比如你的网站不是所有页面都想被索引,你可以在“Sites”设置匹配规则。或者,你可以把网站的sitemap添加到“Indexing”中,更多请参考cse页面中说明。

使用iframe版本的cse是相当简单的,直接拷贝cse提供的html代码拷贝到自己页面即可,这里不多赘述。对于第二种方式,请参考这篇文章,讲的很详细。本文主要讲解第三种方式。

要使用Custom search API获取json方式的结果,首先需在Google APIs console中开启(需翻墙),来获取API的key。要注意的是,使用这种方式,每天只能免费搜索100次。不过对于个人网站,100次基本上够用了。

假设现在我们已经获取了API的key和cx。那我们就正式开始。大量代码段,请移步原文>>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。