Google 是否像在实际网站上一样提供对自动完成搜索的 API 访问?我找不到任何东西。
我想在我自己的网站上使用谷歌的自动完成逻辑进行网络搜索,该网站依赖于谷歌的搜索 API。
Google 是否像在实际网站上一样提供对自动完成搜索的 API 访问?我找不到任何东西。
我想在我自己的网站上使用谷歌的自动完成逻辑进行网络搜索,该网站依赖于谷歌的搜索 API。
新网址是:
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 将于 2015 年 8 月 10 日停止工作:自动完成 API 更新
首先,转到谷歌,点击设置(右下角),将搜索设置更改为“从不显示即时结果。这样,您将获得常规的自动完成功能,而不是一整页的即时结果。
保存设置后,返回 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/
上述大多数方法都对我有用,特别是以下方法符合我的目的。
http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY
作为网络编程的新手,我不太了解“回调”功能和查询返回的文件格式。我对 AJAX 和 JSON 知之甚少。有人可以提供有关查询返回的文件格式的更多详细信息。谢谢。
嗨,我不知道这个答案是否与您相关,但谷歌通过以下获取请求返回 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 ://dzone.com/articles/implement-and-optimize-autocomplete-with-google-pl