为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取与谷歌搜索栏下显示的相同的预测搜索数据

如何获取与谷歌搜索栏下显示的相同的预测搜索数据

慕哥9229398 2023-11-12 22:13:45
我正在尝试找到一种方法来获得与您输入内容时在 Google 搜索栏下显示的相同的预测搜索结果。我也不是在谈论针对特定网站的自定义搜索。我认为这是不可能的,直到我从 Chrome 商店中发现了一个新的标签页扩展。https://chrome.google.com/webstore/detail/start-a-better-new-tab/kgifkabikplflflabkllnpidlbjjpgbp?hl=en他们的搜索栏预测与谷歌的完全匹配。他们从什么来源获取这些数据?还有其他人可以推荐的预测搜索服务/API 吗?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

“他们从哪里获得这些数据?”

通过查看扩展程序的源代码,此 URL:
https://google.com/complete/search?client =firefox&hl=en&q=foo

它与 Google 在其搜索页面上使用的 API 相同。但该 API 受CORS 策略保护,因此无法从任何网页访问。浏览器扩展可以,因为它被授予了更多权限。要使用它,您需要一台代理服务器(可以是您自己的,也可以是免费的,如下例中的服务器)。

const searchInput = document.getElementById('search'),

  suggestionsList = document.getElementById('suggestions');


searchInput.addEventListener('input', autocomplete);

autocomplete();


function autocomplete() {

  const q = searchInput.value;

  const proxy = 'https://cors-everywhere.herokuapp.com/';

  

  fetch(`${proxy}https://google.com/complete/search?client=firefox&hl=en&q=${q}`, {

    headers: { origin: 'google.com' }

  })

  .then(res => res.json())

  .then(res => {

    suggestionsList.innerHTML = res[1].map(x => `<li>${x}</li>`).join('')

  });

}

<input id="search" value="foo" />

<ul id="suggestions"></ul>

查看完整回答
反对 回复 2023-11-12
  • 1 回答
  • 0 关注
  • 56 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信