Google 是否提供 API 访问来自动完成搜索,就像在实际网站上一样?我没找到任何东西。
我想在我自己的网站上使用 Google 的自动完成逻辑进行网络搜索,该网站依赖于 Google 的搜索 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 年 10 月 8 日起停止工作:自动完成 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
添加到网址末尾。您可以将 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/
嗨,我不知道这个答案是否与您相关,但谷歌通过以下 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://dzone.com/articles/implement-and-optimize-autocomplete-with-google-pl
我正在使用 (( Edrra.com )) API,它具有可与 GET 和 POST 配合使用的 Google 搜索和建议:
谷歌建议: 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
还有更多...
您可以使用关键字 Quill,它提供了 Google 自动完成 API。免费获取 API 密钥并向端点发出请求。
用于查找短语“空气炸锅”的自动完成关键字的 JS 示例如下:
const data = JSON.stringify({
"keyword": "air fryers",
"gl": "US",
"hl": "en"
});
fetch('https://api.keywordquill.com/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'API KEY'
},
body: data
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
您想使用自动完成功能做什么?更多信息将有助于缩小范围。
据我所知,google 没有提供,但它们确实存在,就像 jQuery UI 的自动完成功能一样。
编辑:
如果您正在使用他们的自定义搜索 API 视图 此处进行自动完成。