Предоставляет ли API API доступ к автозаполнению для поиска, например, на самом сайте? Я ничего не смог найти.
Я хотел бы использовать логику автозаполнения Google для веб-поиска на моем собственном сайте, который полагается на API поиска Google.
Предоставляет ли API API доступ к автозаполнению для поиска, например, на самом сайте? Я ничего не смог найти.
Я хотел бы использовать логику автозаполнения Google для веб-поиска на моем собственном сайте, который полагается на API поиска Google.
Новый URL-адрес:
http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY
требуется клиентская часть; Я не тестировал других клиентов.
[EDIT]
Если вы хотите, чтобы обратный вызов использовал это:
http://suggestqueries.google.com/complete/search?client=chrome&q=YOURQUERY&callback=callback
Как выяснилось @Quandary; обратный вызов не работает с клиентом "firefox".
[EDIT2]
Как указано @user2067021, этот api перестанет работать с 10-08-2015: Обновление в API автозаполнения
Сначала перейдите в 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>
Теперь, когда вы знаете, как получить данные, следующим шагом будет автоматически изменить последний script (тот, у которого есть URL автозаполнения). Основная процедура заключается в следующем: каждый раз, когда пользователь вводит что-то в поле поиска (onkeyup), замените поисковый запрос (q = any) в URL-адресе, а затем присоедините его к телу a script с этим URL-адресом. Удалите предыдущий script, чтобы тело не заполнилось.
Для получения дополнительной информации см. http://simplestepscode.com/autocomplete-data-tutorial/
Большинство из вышеперечисленных методов работает для меня, в частности, следующее служит моей цели.
http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY
Будучи новичком в веб-программировании, я не очень хорошо знаю функциональность "Обратный звонок" и формат файла, возвращаемого запросом. Я мало осведомлен о AJAX и JSON. Может ли кто-нибудь предоставить более подробную информацию о формате файла, возвращаемого запросом. Спасибо.
Что вы пытаетесь использовать для автозаполнения? Дополнительная информация поможет уменьшить его.
Насколько я знаю, Google не предоставляет один, но они существуют как автозавершение jQuery UI.
EDIT:
Если вы используете свой API пользовательского поиска, здесь для автозаполнения.
Привет, я не знаю, подходит ли этот ответ вам больше или нет, но google возвращает данные JSON через следующий запрос на получение (хотя это не официальный API, но многие панели инструментов используют этот API, поэтому нет причин, по которым Google может прекратить его):
http://google.com/complete/search?q=<Your keywords here>&hl=en