@daminik00

Возможно ли взаимодействовать с сайтами у которых нет API?

Допустим я хочу что бы скрипт на сервере зашёл на сайт, нажал на кнопку, спарсил то что получилось при нажатие и вернул мне результат. Возможно ли такое?
  • Вопрос задан
  • 466 просмотров
Пригласить эксперта
Ответы на вопрос 4
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
Да. Кнопка это запрос. Post или Get, так что по сути все сводится к отправке запроса. Для этого есть в php - curl. А для парсинга есть библиотека simplehtmldom, или другие или просто регулярные выражения.
Ответ написан
riot26
@riot26
<:З )~~
Возможно будет интересно в дополнение к предыдущим ответам: https://wrapapi.com
Ответ написан
Комментировать
Rou1997
@Rou1997
Возможно, двумя основными способами - на уровне HTTP или полная имитация браузера - Selenium, Phantom.js, headless-браузеры.

А если кнопка вызывает какую либо функцию и не перезагружает страницу. Или это вообще Single page application. Например сайт магазина одежды

В браузере все взаимодействие с сервером в конечном итоге основано на XMLHttpRequest, гораздо реже WebSocket или такие протоколы, как RTMP (во Flash), на более низком уровне любое сетевое взаимодействие основано на TCP или гораздо реже UDP и другие протоколы для особых случаев, в общем среда является недоверенной, все что отправляется на сервер или поступает с него можно перехватить при анализе и после этого симитировать своим приложением, есть несколько уровней и способов, которыми это можно сделать.
Ответ написан
Комментировать
gubin_niko
@gubin_niko
Максим Тимофеев уже ответил, что возможно, но я хотел бы уточнить Если разработчики сайта позаботились о безопасности, то они могли добавить токены в каждую форму, которые обновляются у простых пользователей каждый раз, в каждый запрос к серверу (csrf). В таком случае Вам будет сложнее отправлять форму через свой скрипт и необходимо будет находить решение этой проблемы.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы