Браузер на стороне сервера, который может выполнять JavaScript - PullRequest
7 голосов
/ 26 января 2010

Существуют ли какие-либо программные библиотеки, которые будут анализировать HTML-документ, выполнять JavaScript и затем позволять мне перемещаться по DOM? Это должно быть выполнено на стороне сервера, а не на стороне клиента. Подойдет любой язык, но Java, PHP или Ruby предпочтительнее.

Ответы [ 9 ]

6 голосов
/ 26 января 2010
2 голосов
/ 26 января 2010

в Java: http://lobobrowser.org/cobra/java-html-parser.jsp
это анализатор HTML с поддержкой Javascript и CSS
самая важная особенность в отношении вашего вопроса: он поддерживает Javascript. Модификации DOM, которые происходят во время синтаксического анализа, будут отражены в получающемся DOM.

2 голосов
/ 26 января 2010

Java имеет поддержку javascript с Rhino, также посмотрите на этой странице решения javascript на стороне сервера: http://en.wikipedia.org/wiki/Server-side_JavaScript

1 голос
/ 30 марта 2013

PhantomJS делает это и может использоваться с любым языком на стороне сервера. Ниже приведены некоторые модули интеграции для NodeJS и PHP

.

NodeJS

https://npmjs.org/package/node-phantom

https://github.com/sgentle/phantomjs-node

PHP

https://github.com/diggin/php-PhantomjsRunner

1 голос
/ 27 января 2010

Для Java обязательно проверьте HtmlUnit и HttpUnit .

0 голосов
/ 11 сентября 2016

node.js?

Узел может запустить любой файл JavaScript в своей консоли. Сначала я попробую узел и посмотрим, сможет ли он делать то, что вы хотите, так как у него, вероятно, самая большая база пользователей и документация.

0 голосов
/ 26 февраля 2014

В настоящее время есть несколько проектов, которые действительно хорошо справляются с этой задачей:

  • PhantomJS - это версия WebKit без заголовка, и есть несколько полезных оболочек, таких как CasperJS .

  • Zombie.js , который является оберткой над jsdom , написанным на Javascript (Node.js).

Вам нужно написать код JavaScript для взаимодействия с обоими этими проектами. Пока что мне больше нравится Zombie.js, поскольку его проще настроить, и вы можете использовать любые модули Node.js / npm в своем коде.

0 голосов
/ 26 января 2010

Начните с этого поста и следуйте по ссылкам. Или просто поискать Rhino.

0 голосов
/ 26 января 2010

PHP имеет DOMDocument для навигации по DOM. Я ничего не слышал о выполнении JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...