2011-06-21 117 views
57

谷歌是否提供API访问自动完成搜索像在实际网站上?我一直无法找到任何东西。谷歌搜索autocomplete API?

我想在我自己的网站上使用Google的自动完成逻辑进行网络搜索,这个网站依靠Google的搜索API。

+1

昨天和今天之间的某个时候,http://google.com/complete/search?q=&HL = EN停止工作。这意味着xlune和blinkdash上的自动完成功能也停止工作。谷歌改变了一些东西,直到有人弄清楚是什么,试图访问他们的自动完成功能将无法正常工作。 – 2011-11-29 15:08:59

回答

0

你想用什么自动完成?更多信息将有助于缩小范围。

据我所知,谷歌并没有提供一个,但他们确实存在像jQuery UI's auto-complete.

编辑:

如果您正在使用自己的自定义搜索API视图here for autocomplete.

+0

我想提供自动完成功能,以及Google的API提供的网络搜索功能 –

+0

好的谢谢,但我正在搜索整个网络。那么Web Search API呢? –

+0

我找不到任何关于在整个网络中使用自动完成功能的信息,对不起。无论如何,我不相信Google会让你这样做。 – Collecter

0

我喜别不知道这个答案是否与你有关,但谷歌通过下面的获取请求返回JSON数据(尽管这不是官方的API,但许多工具栏都使用这个API,所以没有理由为什么谷歌可能会停止它):

http://google.com/complete/search?q=<Your keywords here>&hl=en 
+1

你能提供更多关于这是什么的信息吗?我试了一下,它让我下载一个文件。自己检查一下。 –

+0

是justin,那个文件是一个JSON响应。你可以使用它使用javascript ..你可以看到原始结果,如果你在Linux上使用notepad或vim打开该文件。 – Sid

+5

不起作用。 :( – Dejell

61

新的网址是:

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

客户端部分是必需的;我没有测试其他客户端。

[编辑]

如果你想在回调使用:

http://suggestqueries.google.com/complete/search?client=chrome&q=YOURQUERY&callback=callback

由于@Quandary发现;该回调不适用于客户端“firefox”。

[EDIT2]

如图所示由@ user2067021这个API将停止工作,为2015年10月8日:Update on the Autocomplete API

+1

改为使用:http://suggestqueries.google。 com/complete/search?client = chrome&q = YOURQUERY&callback = abc,因为如果你使用client = firefox,回调不起作用 –

+0

那些都是我的空白文件 – Supuhstar

+0

@Supuhstar:他们都工作。 – RickyA

7

大多数上述方法对我的作品,具体有以下服务我的目的。

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY 

作为网络编程的新手,我不太清楚“回调”功能和查询返回的文件格式。我很少意识到AJAX和JSON。 有人可以提供关于查询返回的文件格式的更多细节。 谢谢。

+0

似乎没有工作了......我得到一个包含这个内容的文档:[“YOURQUERY”,[]] - 没有别的。啊哈! –

+1

啊!好的,所以它工作。 :)只是“YOURQUERY”是Google无法完成的事情。哈哈。 http://suggestqueries.google.com/complete/search?client=firefox&q=mary+had会提供一些正确的结果。 –

9

首先,到谷歌,点击设置(右下角),更改搜索设置为“从不显示立竿见影的效果,这样一来,你会得到的,而不是立竿见影的一整页定期自动完成。

保存设置后,请返回Google主页,打开浏览器的开发者工具,进入网络标签页,如果您使用的是Firefox,则可能需要重新加载页面。

在中键入一个字母搜索框,一个新行应该出现在你刚刚打开的网络窗口中,该行显示自动填充数据来自哪里,复制该网址。它应该看起来像这样:

https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello 

您会注意到您的搜索字词后面有q=

&callback=myAmazingFunction添加到网址的末尾。您可以将myAmazingFunction替换为您想要命名将处理数据的函数的任何内容。

下面是显示搜索词“a”的自动完成数据所需的代码示例。

<div id="output"></div> 

<script> 
/* this function shows the raw data */ 
function myAmazingFunction(data){ 
    document.getElementById('output').innerHTML = data; 
} 
</script> 

<script src="https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello&callback=myAmazingFunction"></script> 

既然你已经知道如何获得数据后,下一步是自动改变的最后一个脚本(带有自动完成URL)。基本过程是:每次用户在搜索框中输入内容(onkeyup)时,都会替换url中的搜索词(q = whatever),然后将带有该URL的脚本附加到正文中。删除前面的脚本,以便身体不会混乱。

欲了解更多信息,请参阅http://simplestepscode.com/autocomplete-data-tutorial/

+0

适合我,谢谢! –