2014-10-28 87 views
1

我試圖用使用捕捉例如PhantomJS page.open凍結

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

的代碼工作正常,我的本地機器上,使用Ubuntu 14.04 PhantomJS打開一個網站。但是當我在虛擬服務器上運行代碼時,回調從不會被調用,並且腳本不會退出。服務器和本地機器運行完全相同的設置。我在2個不同的服務器上用VMWare和Virtuozzo虛擬化了它。

由於所有請求都成功,因此它似乎不是網絡錯誤。

+0

耶設置UserAgent解決了這個問題。我永遠不會想出這個。謝謝! – DarthMax 2014-10-28 15:20:45

+0

好吧,你似乎在使用PhantomJS 1.9.8? – 2014-10-28 15:24:09

+0

Jip我正在使用最新版本1.9.8 – DarthMax 2014-10-28 15:25:10

回答

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

實際上解決了這個問題。