Я пытаюсь найти способ получить те же результаты предиктивного поиска, которые отображаются под строкой поиска Google при вводе текста. Я уже не говорю о пользовательском поиске по конкретному сайту. Я думал, что это невозможно, пока не наткнулся на новое расширение вкладки из магазина Chrome.
Их подсказки в строке поиска точно совпадают с подсказками Google. Из какого источника они получают эти данные? Есть ли другие сервисы/API предиктивного поиска, которые кто-нибудь может порекомендовать?
Глядя на исходный код расширения, этот URL:
https://google.com/complete/search?client=firefox&hl=en&q=foo
Это тот же API, который Google использует на своей странице поиска. Но этот 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>
Мы не можем ответить на этот вопрос здесь, так как это не по теме. Этот тип вопросов, как правило, привлекает самоуверенные ответы и спам.
Google определенно не хочет, чтобы вы использовали его. Насчет легальности точно сказать не могу, но вне личного, хобби сайта использовать бы не стал
Спасибо за быстрый ответ, идеально подходит для моей ситуации. Есть ли юридические проблемы с использованием API на веб-странице?