Как работает page.content? - PullRequest
       11

Как работает page.content?

2 голосов
/ 29 февраля 2012

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

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

Поэтому мне интересно, есть ли способ сохранить полную DOM (со всем уже загруженным динамическим контентом, таким как js илиiframes).

Вот мой код:

var page = new WebPage(),
    address, output, size;

if (phantom.args.length < 2 || phantom.args.length > 3) {
    console.log('Usage: rasterize.js URL filename');
    phantom.exit();
} else {
    address = phantom.args[0];
    output = phantom.args[1];
    page.viewportSize = { width: 600, height: 600 };
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
        } else {
            window.setInterval(function(){
                page.render(output+'.png');

                var fs = require('fs');
                fs.write(output+'.html', page.content, 'w');

                phantom.exit();
            }, 4000);
        }
    });
}

Вот пример вывода изображения (с iframes, выделенными красным):

http://dl.dropbox.com/u/123181/prodigy.msn.com.png

Вот пример вывода HTML:

http://dl.dropbox.com/u/123181/prodigy.msn.com.html

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