PhantomJS page.open зависает

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

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

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

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


person DarthMax    schedule 28.10.2014    source источник
comment
Ура, установка UserAgent решила проблему. Я бы никогда не придумал это. Спасибо!   -  person DarthMax    schedule 28.10.2014
comment
Хорошо, кажется, вы используете PhantomJS 1.9.8?   -  person Artjom B.    schedule 28.10.2014
comment
Jip Я использую последнюю версию 1.9.8   -  person DarthMax    schedule 28.10.2014


Ответы (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';

на самом деле решил проблему.

person DarthMax    schedule 28.10.2014