PhantomJS и получение модифицированного DOM

Я разрабатываю инструмент, который должен загрузить веб-страницу со стороннего сервера, выполнить ее, как это сделал бы браузер, а затем проанализировать HTML. Я борюсь с тем, что инструмент должен анализировать HTML после выполнения всего javascript и изменения DOM. Я пытаюсь использовать PhantomJS для этой цели, и он работает с небольшими фрагментами кода (просто крошечный HTML-документ с внешним javascript, который добавляет некоторые узлы в DOM), но когда я делаю то же самое с реальным сайтом ( http: //www.dba.dk/) Я не получаю окончательный HTML-код после всех изменений, выполненных кодом js.

Мне действительно нужна помощь в этом вопросе, так как я застрял в этом больше недели.

Мой код PhantomJS прост:

if (phantom.state.length === 0) {
     if (phantom.args.length === 0) {
             console.log('Usage: test.js ');
             phantom.exit();
     } else {
             var address = phantom.args[0];
             phantom.state = Date.now().toString();
             phantom.viewportSize = { width: 1280, height: 800 };
             phantom.open(address);
     }
} else {
     var elapsed = Date.now() - new Date().setTime(phantom.state);
     if (phantom.loadStatus === 'success') {
             if (!first_time) {
                     var first_time = true;
                     if (!document.addEventListener) {
                             console.log('Not SUPPORTED!');
                     }
                     phantom.render('result.png');
                     var markup = document.documentElement.innerHTML;
                     console.log(markup);
                     phantom.exit();
             }
     } else {
             console.log('FAIL to load the address');
             phantom.exit();
     }
}

HTML, выгружаемый на консоль, не содержит содержимого, генерируемого динамически

6
задан Ionică Bizău 1 April 2015 в 17:57
поделиться