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

Что нужно:

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

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

Есть что-то подобное, хабравчане?
  • Вопрос задан
  • 22861 просмотр
Решения вопроса 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?
Ответ написан
Комментировать
hell0w0rd
@hell0w0rd
Просто разработчик
github.com/symfony/BrowserKit — вот такая штука, но нет js интерпритатора
Ответ написан
Комментировать
taviscaron
@taviscaron
selenium webdriver поможет
Ответ написан
Комментировать
Если Вам полную эмуляцию с аяксом и всеми плюшками, то
xvfb+firefox+mozrepl с которым уже и можно общаться через php.
Ответ написан
AFoST
@AFoST
Может, какой-нибудь jasmine (юнит-тесты) + sinon\mockjax (эмуляция ответов)?
Ответ написан
Комментировать
olegbarabanov
@olegbarabanov
Программист, фрилансер (ИП)
Системный вызов в безоконном режиме node-webkit.
Ответ написан
Комментировать
Еще вариант, использовался на production MynaJs+HtmlUnit

www.mynajs.org/site/index.ejs
htmlunit.sourceforge.net/
Ответ написан
Комментировать
PHP запрашивал то что ему нужно в MynaJs GET запросом, а последний возвращал JSON.
Ответ написан
Комментировать
То что ты ищешь! SNOOPY
Ответ написан
Комментировать
@smileonl
На php не получится. Используйте phantomjs.org/
Ответ написан
Комментировать
@klimzp
Кто-нибудь вот этим - www.simpletest.org/en/browser_documentation.html пользовался??
Ответ написан
Комментировать
@dimatelegin
nightmare под node js

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

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

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