PhantomJS page.open freezes

Я пытаюсь открыть веб-сайт с помощью PhantomJS, используя пример Capture

var page = require('webpage').create();
page.open('http://github.com/', function() {
 page.render('github.png');
 phantom.exit();
});

Код отлично работает на моей локальной машине, используя Ubuntu 14.04. Но когда я запускаю код на виртуальном сервере, обратный вызов никогда не вызывается и сценарий не выходит. Сервер и мой локальный компьютер работают с одинаковой настройкой. Я попробовал это на двух разных серверах на виртуализированных с VMWare и один с Virtuozzo.

Это не похоже на сетевую ошибку, так как все запросы успешны.

1 ответ

На самом деле UserAgent вызвал все проблемы. @artjom-b указал мне на этот вопрос. Надежные скриншоты веб-сайтов? Phantomjs и Casperjs возвращают пустые снимки экрана на некоторых веб-сайтах. Единственное различие заключается в том, что для меня файл изображения никогда не создавался.

Поэтому установка UserAgent с

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36';

фактически решил проблему.

licensed under cc by-sa 3.0 with attribution.