Как автоматически отправить запрос в сервисе Яндекс.поиск по сайту
Модератор: Duncon
-
- Сообщения: 3
- Зарегистрирован: 18 ноя 2017, 09:00
Добрый день. На разрабатываемом сайте необходимо интегрировать сервис Яндекс.Поиск по сайту. На сайте существует отдельная форма поиска доступная с любой страницы, данные с которой пересылаются POST запросом на отдельную страницу поиска /search.php, где и встроена система Яндекс.Поиск по сайту. Значение текста запроса из массива $_POST вставляются в строку запроса Яндекс. Необходимо автоматически, без действия пользователя, отправить событие SUBMIT, чтобы был выполнен Поиск и результаты отобразились на этой же странице. При вызове метода submit() над формой по document.ready происходит редирект на специальную страницу яндекса, где и отображаются результаты. При вызове submit() по window.load() не представляется возможность обратиться к изначальной форме по id, так как форму нельзя найти в DOM. Может кто подскажет, как реализовать? Заранее спасибо.
Правильно сформулированный вопрос содержит в себе большую часть ответа
1. Данные можно передавать и методом GET
2. Страницу можно использовать и свою, использовав JavaScript который предоставляет Яндекс
3. Форма ищется легко по id ya-site-form0
1. Данные можно передавать и методом GET
2. Страницу можно использовать и свою, использовав JavaScript который предоставляет Яндекс
3. Форма ищется легко по id ya-site-form0
Даже самый дурацкий замысел можно воплотить мастерски
-
- Сообщения: 3
- Зарегистрирован: 18 ноя 2017, 09:00
Спасибо за ответ) возможно я не до конца правильно сформулировал проблему: с сайта яндекса я взял как раз тот JavaScript, который позволяет выводить результаты поиска на свою страницу. И данной яндексом форме я присвои id и генерировал submit по document.ready(). В результате скрипт отрабатывал, но результаты выводились на отдельной странице, а не на моей, как мне необходимо. Подумав, что дело в том, что submit() отправлялся «слишком рано», я попытался генерировать submit() по window.onload(), но getElementById над изначальной формой вернул NULL, так как формы уже в DOM не было, а она развернулась в сложную структуру таблиц.AiK писал(а):Правильно сформулированный вопрос содержит в себе большую часть ответа
1. Данные можно передавать и методом GET
2. Страницу можно использовать и свою, использовав JavaScript который предоставляет Яндекс
3. Форма ищется легко по id ya-site-form0
Попробую сделать getElemtById над формой с предложенным вами id, может отработает.
Яндекс банить будет, у него специальный сервис есть Яндекс.XML
[syntax=Delphi] [/syntax]
Поиск по сайту и XML разные сервисы.
Даже самый дурацкий замысел можно воплотить мастерски
-
- Сообщения: 3
- Зарегистрирован: 18 ноя 2017, 09:00
Все оказалось проще некуда)
Результаты отображаются в ответ на GET-запрос такого типа:
http:/site.ru/page.php/?searchid=7777777&text=query&web=0
Где site.ru/page.php- страница для отображения результатов (прописывается в настройках поиска, на нее надо поместить код результатов), 7777777 - ID поиска, а "query" - запрос пользователя.
Такую ссылку можно формировать скриптом, если известен запрос пользователя. Текст запроса нужно кодировать через encodeURIComponent или аналог.
Тему можно считать закрытой. Всем спасибо)
Результаты отображаются в ответ на GET-запрос такого типа:
http:/site.ru/page.php/?searchid=7777777&text=query&web=0
Где site.ru/page.php- страница для отображения результатов (прописывается в настройках поиска, на нее надо поместить код результатов), 7777777 - ID поиска, а "query" - запрос пользователя.
Такую ссылку можно формировать скриптом, если известен запрос пользователя. Текст запроса нужно кодировать через encodeURIComponent или аналог.
Тему можно считать закрытой. Всем спасибо)
>Поиск по сайту и XML разные сервисы.
Подумал, зачем-то, что он парсит выдачу..
Подумал, зачем-то, что он парсит выдачу..
[syntax=Delphi] [/syntax]