谷歌搜索自动完成API



Google是否提供API访问自动完成功能,以便像在实际网站上一样进行搜索?我什么也找不到。

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

新的url是:

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

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

[编辑]

如果你想回叫使用这个:

http://suggestqueries.google.com/complete/search?client=chrome&q=查询&callback=回调

正如@Quantary发现的那样;回调不适用于客户端"firefox"。

[编辑2]

如@user2067021所示,此api将于2015年8月10日停止工作:更新自动完成api

首先,转到谷歌,单击"设置"(右下角),将"搜索设置"更改为"从不显示即时结果"。这样,您将获得常规的自动完成,而不是一整页的即时结果。

保存设置后,返回谷歌主页。打开浏览器的开发工具,转到"网络"选项卡。如果您使用的是Firefox,则可能需要重新加载页面。

在搜索框中键入一封信。您刚刚打开的"网络"窗口中应该会出现一条新行。这一行显示了自动完成数据的来源。复制那个url。它应该看起来像这样:

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添加到url的末尾。您可以将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/

上面提到的大多数方法都适用于我,特别是以下方法。

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

作为一名网络编程新手,我不太了解"回调"功能和查询返回的文件格式。我对AJAX和JSON知之甚少。有人能提供更多关于查询返回的文件格式的详细信息吗。谢谢

嗨,我不知道这个答案是否与您有关,但谷歌通过以下get请求返回JSON数据(尽管这不是官方的API,但许多工具栏都在使用这个API,所以谷歌没有理由停止它):

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

您应该使用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

我正在使用((Edrra.com))API,它具有与GET和amp;帖子:

谷歌建议:https://edrra.com/v1/api.php?c=google&f=建议&k=YOUR_API_KEY&v=YOUR_SEARCH

谷歌搜索:https://edrra.com/v1/api.php?c=google&f=搜索&k=YOUR_API_KEY&v=YOUR_SEARCH

及更多

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

据我所知,谷歌没有提供,但它们确实像jQueryUI的自动完成一样存在。

编辑:

如果您在这里使用他们的自定义搜索API视图自动完成。

最新更新