2015-10-24 20 views

回答

3

我怎麼能阻止它加載圖像文件

您可以創建過程中通過橋PhantomJS通過--load-images=falsecommandline option

var phantom = require('phantom'); 
phantom.create('--load-images=false', function (ph) {...}); 
// or 
phantom.create({parameters: {'load-images': false}}, function (ph) {...}); 

,或者您可以通過page.settings腳本中設置:

page.set("settings.loadImages", false); 

如何訪問已被PhantomJS下載的文件?

PhantomJS不會將任何文件下載到可定製的位置,例如,點擊一下。相反,它可能會將下載的文件放入緩存中。您可以通過命令行選項(如上述)啓用磁盤緩存:

phantom.create('--load-images=false', '--disk-cache=true', function (ph) {...}); 

This answer表明PhantomJS創建的臨時文件的默認位置。

爲什麼PhantomJS的屏幕截圖與我的瀏覽器中顯示的不同?

它可能是任何東西。 PhantomJS具有400x300像素的默認視口(通過媒體查詢產生差異)以及與普通桌面瀏覽器不同的用戶代理字符串。網站可能會運行一些瀏覽器檢測和功能檢測腳本,這些腳本可以將PhantomJS與普通的桌面瀏覽器區分開來。它可以是任何東西,但改變視口大小可能就足夠:

page.set('viewportSize', { width:1280, height:800 }); 
page.set('settings.userAgent', 'some desktop user agent string'); 
+0

我想我是設置UA和settings.loadImages錯誤,但現在似乎一切都按預期工作預計臨時文件。 – JehandadK

+0

我不知道是否所有的資源都被緩存了,而且緩存資源的格式也是需要解析的。用PhantomJS明確下載一些文件會更好。如果您對網站和腳本有特定問題,請提出新問題。 –

相關問題