API автозаполнения поиска Google? - PullRequest
61 голосов
/ 21 июня 2011

Предоставляет ли Google API доступ к автозаполнению для поиска, как на реальном сайте?Я не смог ничего найти.

Я хотел бы использовать логику автозаполнения Google для веб-поиска на моем собственном сайте, который основан на API поиска Google.

Ответы [ 5 ]

68 голосов
/ 07 декабря 2011

Новый URL:

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 перестает работать с 10-08-2015: Обновление наАвтозаполнение API

11 голосов
/ 22 октября 2013

Большинство из вышеперечисленных методов работает для меня, в частности, следующие цели служат моей цели.

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

Будучи новичком в веб-программировании, я не очень осведомлен о функциональности «обратного вызова» иформат файла, возвращаемого по запросу.Я мало знаю об AJAX и JSON.Может ли кто-нибудь предоставить более подробную информацию о формате файла, возвращаемого запросом.Спасибо.

10 голосов
/ 28 февраля 2015

Сначала перейдите в Google, нажмите Настройки (в правом нижнем углу), измените Настройки поиска на «никогда не показывать мгновенные результаты. Таким образом, вы получите регулярное автозаполнение вместо полной страницы мгновенных результатов.

После сохранения настроек вернитесь на главную домашнюю страницу Google. Откройте инструменты разработчика вашего браузера и перейдите на вкладку Сеть. Если вы находитесь в Firefox, возможно, вам придется перезагрузить страницу.

Введите букву в поле поиска. Новая строка должна появиться в окне сети, которое вы только что открыли. Эта строка показывает, откуда пришли данные автозаполнения. Скопируйте этот URL. Это должно выглядеть примерно так:

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 в конец URL. Вы можете заменить 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), заменяет поисковый термин (q = что угодно) в URL, а затем добавляет к тексту сценарий с этим URL. Удалите предыдущий скрипт, чтобы тело не загромождалось.

Подробнее см. http://simplestepscode.com/autocomplete-data-tutorial/

0 голосов
/ 12 июля 2011

Здравствуйте, я не знаю, актуален ли этот ответ для вас или нет, но Google возвращает данные JSON через следующий запрос get (хотя это не официальный API, но многие панели инструментов используют этот API, поэтому нет причин, почему Googleможет прекратить это):

http://google.com/complete/search?q=<Your keywords here>&hl=en 
0 голосов
/ 21 июня 2011

Для чего вы пытаетесь использовать автозаполнение?Дополнительная информация поможет сузить ее.

Насколько я знаю, Google не предоставляет ее, но они существуют, как и jQuery UI с автозаполнением.:

Если вы используете их пользовательское представление API поиска здесь для автозаполнения.

...