谷歌搜索自动完成 API? ?

Google 是否像实际站点一样提供了自动完成搜索的 API 访问?我什么都没找到。

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

72839 次浏览

您试图使用自动完成功能做什么? 更多的信息将有助于缩小范围。

据我所知,谷歌没有提供一个,但他们确实存在像 JQuery UI 的自动完成。

编辑:

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

嗨,我不知道这个答案是否还适用于你,但是 google 通过下面的 get 请求返回 JSON 数据(虽然这不是一个官方的 API,但是很多工具栏都在使用这个 API,所以 google 没有理由停止它) :

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

新的网址是:

Http://suggestqueries.google.com/complete/search?client=firefox&q=yourquery

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

[编辑]

如果需要回调,请使用以下命令:

Http://suggestqueries.google.com/complete/search?client=chrome&q=yourquery&callback=callback

正如@Quandary 所发现的,回调函数不能用于客户端“ firefox”。

[编辑2]

如@user2067021所示,这个 API 将从10-08-2015: 自动完成 API 的更新开始停止工作

上面提到的大多数方法对我都有效,特别是以下方法。

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

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

首先,进入谷歌,点击设置(右下角) ,更改搜索设置为“永远不显示即时结果。”。这样,您将获得定期自动完成,而不是一整页的即时结果。

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

您应该使用 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 和 POST 一起工作:

谷歌建议: Https://edrra.com/v1/api.php?c=google&f=suggest&k=your_api_key&v=your_search

谷歌搜索: Https://edrra.com/v1/api.php?c=google&f=search&k=your_api_key&v=your_search

还有更多。