Могу ли я запускать все скрипты Java на странице при просмотре в Интернете с помощью Node.js? (т.е. имитировать настоящий браузер?) - PullRequest
5 голосов
/ 21 октября 2011

Я пытаюсь сделать несколько операций по просмотру веб-страниц с помощью node.js. Используя jsdom, легко загрузить DOM и внедрить в него JavaScript. Я хочу пойти еще дальше: запустить весь JavaScript, связанный с веб-страницей, а затем проверить полученный DOM, , включая визуальные свойства (высота, ширина и т. Д.) Элементов.

Пока что я получаю NaN, когда пытаюсь проверить размеры элементов DOM с помощью jsdom.

Возможно ли это?

Меня поражает, что есть две разные проблемы:

  1. Запуск всех JS на веб-странице
  2. Получение узла для имитации рендеринга окна / экрана в дополнение только к DOM

Еще один способ задать вопрос: возможно ли использовать node.js в качестве полностью автономного браузера, который вы можете писать?

Если это невозможно, у кого-нибудь есть предложения, какую библиотеку я могу использовать для этого? Я относительно языковой агностик.

Ответы [ 2 ]

4 голосов
/ 27 октября 2011

Посмотрите на PhantomJS. Невероятно прост в использовании.

http://www.phantomjs.org/

PhantomJS - это инструмент командной строки, который упаковывает и встраивает WebKit. Буквально он действует как любой другой веб-браузер, основанный на WebKit, за исключением того, что на экран ничего не выводится (таким образом, термин безголовый). Кроме того, PhantomJS можно контролировать или создавать сценарии с помощью JavaScript API.

1 голос
/ 24 октября 2011

Вы можете использовать:

  • htmlunit (java, jython)
  • PyQtWebKit или pygtk + webkit (python)
  • WWW :: Mechanize :: Firefox toочистить от firefox (perl)
  • Win32-IEAutomation, чтобы очистить от MS Internet Explorer (perl)

Все эти решения также могут запускать javascript.

Вы будетенайти много примеров кода прямо из http://stackoverflow.com поисков

...