Google搜索自动填充API?

时间:2011-06-21 16:08:00

标签: autocomplete google-search-api

Google是否为实际网站上的搜索提供了自动填充的API访问权限?我找不到任何东西。

我想在我自己的网站上使用谷歌的自动完成逻辑进行网络搜索,该网站依赖于谷歌的搜索API。

6 个答案:

答案 0 :(得分:67)

新网址是:

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年8月10日停止工作:Update on the Autocomplete API

答案 1 :(得分:11)

上面提到的大部分方法对我有用,特别是以下是我的目的。

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

作为网络编程的新手,我不太了解“回调”功能和查询返回的文件格式。我很少知道AJAX和JSON。 有人可以提供有关查询返回的文件格式的更多详细信息。 感谢。

答案 2 :(得分:9)

首先,转到Google,点击设置(右下角),将搜索设置更改为"从不显示即时结果。这样,您就可以获得定期自动填充功能,而不是整页即时结果。

保存设置后,请返回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/

答案 3 :(得分:1)

您应该使用 AutocompleteService 并将该文本框值传递给 service.getPlacePredictions 函数。它在回调函数中发送数据。

let service = new google.maps.places.AutocompleteService();

let displaySuggestions = function(predictions, status) {
}

service.getPlacePredictions({
    input: value
}, displaySuggestions);

基数:https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompleteService.getPlacePredictions

示例:https://dzone.com/articles/implement-and-optimize-autocomplete-with-google-pl

答案 4 :(得分:0)

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

据我所知,谷歌没有提供,但它们确实存在,如jQuery UI's auto-complete.

编辑:

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

答案 5 :(得分:0)

您好我不知道这个答案是否与您相关,但谷歌通过以下获取请求返回JSON数据(虽然这不是官方API,但许多工具栏正在使用此API,所以没有理由为什么谷歌可能会停止它):

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