Как эмулировать браузер на php?

Что нужно:

1) Эмулировать запросы, загрузку и выполнение js на страницах, поддержку кук.
2) Управление запросами и полученными данными на сервере, например, с помощью того же php.

Хотелось бы простоты, подобной тому же curl'у (он, естественно, не подходит сам по себе, так как не работает с js).

Есть что-то подобное, хабравчане?
  • Вопрос задан
  • 18990 просмотров
Решения вопроса 1
dizballanze
@dizballanze
Software developer at Yandex
Полностью на php не знаю, но можно взаимодействовать с selenium или phantomjs.
Ответ написан
Пригласить эксперта
Ответы на вопрос 12
@rPman
Не надо мучиться, напишите на моно простейшее консольное приложение использующее штатный контрол WebBrowser (при запуске под mono используется firefox), и пишите всю логику на javascript, запуская тут же на этой же странице на onload (точнее его аналог события на контроле).
Оно действительно получается очень простым, вся логика влезает в javascript с использованием jquery (его можно грузить в отличный от '$' идентификатор). И при этом запускается такое приложение на любом самом дешевом vps linux.

Я думаю между этим приложением и своим на php обмен сообщениями осилите c простейшими push ajax запросами или даже websocket?
Ответ написан
Если Вам полную эмуляцию с аяксом и всеми плюшками, то
xvfb+firefox+mozrepl с которым уже и можно общаться через php.
Ответ написан
AFoST
@AFoST
Может, какой-нибудь jasmine (юнит-тесты) + sinon\mockjax (эмуляция ответов)?
Ответ написан
PHP запрашивал то что ему нужно в MynaJs GET запросом, а последний возвращал JSON.
Ответ написан
@dimatelegin
nightmare под node js

1) сохраняете станицы, получающиеся после выполнения на них js-скриптов в файлы
2) и потом уже с помощью php или любого другого языка программирования обрабатываете эти файлы и делаете с ними, что хотите
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2021, в 17:31
1500 руб./за проект
18 апр. 2021, в 16:33
400 руб./за проект
18 апр. 2021, в 16:28
3000 руб./за проект