Google是否为实际网站上的搜索提供了自动填充的API访问权限?我找不到任何东西。
我想在我自己的网站上使用谷歌的自动完成逻辑进行网络搜索,该网站依赖于谷歌的搜索API。
答案 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://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