Загрузите веб-страницу, выполните ее JavaScript и сохраните полученный HTML-файл в файл. - PullRequest
2 голосов
/ 22 марта 2011

Мне нужно загрузить веб-страницу, выполнить ее JavaScript (и все js-файлы, включенные в теги) и выгрузить полученный HTLM в файл.Это должно быть сделано на сервере.Я пробовал node.js с zombie.js, но он кажется слишком незрелым, чтобы работать в реальном мире.Чаще всего он просто выдает ложное исключение, в то время как реальный браузер (FireFox) не имеет проблем со страницей.

Мой код node.js:

var zombie = require("zombie"),
    sys = require('sys');

// Load the page
var browser = new zombie.Browser({ debug: false });
browser.visit('http://www.dba.dk', function (error, browser, status) {
    if (error) { console.log('Error:' + error.message); }
    if (!error && browser.statusCode == 200) {
        sys.puts(browser.html);
    }
});

и завершается сисключение "TypeError: Невозможно вызвать метод 'toString' со значением NULL"

Jaxer на самом деле не вариант. Мне нужно загрузить стороннюю страницу и выполнить ее на моем сервере.Как бы я это сделал с Jaxer

1 Ответ

5 голосов
/ 22 марта 2011

Возможно, это потому, что вы используете err.message, тогда как err не определено? error, с другой стороны, определяется .


Обновление

Вы проверили PhantomJS ?

Кроме того, похоже, что Aptana Jaxer может делать то, что вы хотите. Цитировать Джон Резиг :

Вообразите, что вырываете визуальное рендеринг часть Firefox и заменив его на крючок к Apache вместо этого - грубо говоря, это то, что Джаксер есть.

...