@AMX-123456

Как сделать выдачу другого сервиса на своем сайте?

Куда копать, чтобы сделать следующее:
На сайте нужно поле, где человек вводит свой поисковый запрос и после кнопочки "искать" видит выдачу, например, гугла, но с моим дизайном. То есть, нужно перехватить то, что будет после ввода поискового запросы и на этой же странице(моего сайта) вывести в моем дизайне.
Структура ссылки сервиса, который мне надо, следующая: site.com/?url=http://site2.com
То есть, в поле ввода надо писать сайт2, а на выходе надо страницу по ссылке выше выводить с измененным дизайном.

Подскажите как это называется и в какую сторону копать. Сайт на вордпресе, относительно все просто, никаких заумных сервисов и бюджетов.
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 2
@rPman
При активном противодействии целевого сайта - очень сложно и в общем случае никак. Если целевой сервис не против и даже сотрудничает с вами, то смотреть на api запросы, которые используются сервисом (в идеале это могут быть ajax get/post), добавив ваш сайт в настройки целевого Cross-Origin Resource Sharing (CORS).
Про причину проблемы читать - Cross Site Request Forgery (CSRF).

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

Как только гугл заподозрит вас в подобном, он сразу начнет спрашивать у вас капчу, вы конечно можете ее начать бороться с гуглом, используя прокси и разные инстансы для симулятора, или лучше перенаправить вашим пользователям или даже на платные сервисы их решения, но это неудобно, медленно и не бесплатно.
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Если нет готового API для работы с сервисом, то можно сделать следующее:
1) Изучить их веб-сайт. Может быть у них есть свой внутренний API, по которому фронт работает с бекендом (т.е. некий фреймворк взаимодействует с админкой через REST API). Изучаем вкладку "Сеть" браузера и смотрим что он отправляет при запросе и что получает. Далее пытаемся это симулировать.
Отправляем запрос на сервер и парсим полученный ответ.

Можно поработать с неким парсером. Что-то наподобие jsoup на java. Когда при помощи okhttp или любым другим способом отправляете запрос на сервер (посмотрите как они отправляют запрос на их сервер). Далее полученный ответ парсите и вставляете в свой DOM.

2) Как вам и подсказали - selenium. На серверной стороне установите selenium + драйвер браузера и сам браузер. Например, selenium + geckodriver + firefox. Далее в браузере (в режиме headless) открываете урл, куда передаете значение введенное пользователем. Далее полученный html парсите тем же selenium'ом или jsoup или еще чем-то и отдаете в ВП сайт.

В общем, надо смотреть что за сервис, какая защита у них, есть ли honeypot, нужна ли авторизация для отправки запроса и получения результата, выдается ли результат динамически (средствами js - ajax), есть ли рекапча и нужно ли ее обходить подключив доп. сервис и т.д.

Если столкнетесь с рекапчей, то самый дешевый сервис, который встречал - https://anti-captcha.com/
Подключаете и работаете с API этого сервиса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы