PhantomJS page.open冻结

时间:2014-10-28 13:20:47

标签: phantomjs headless

我正在尝试使用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 个答案:

答案 0 :(得分:0)

实际上UserAgent造成了所有麻烦。 @ artjom-b向我指出了这个问题Taking reliable screenshots of websites? Phantomjs and Casperjs both return empty screen shots on some websites。唯一的区别是,对我来说,从未创建过图像文件。

所以用

设置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';

实际上解决了这个问题。

相关问题