1
我使用PhantomJS通過https://github.com/sgentle/phantomjs-node/加載網頁,並想知道我們如何訪問PhantomJS下載的文件?
- 我怎麼能阻止它加載鏡像文件?
- 如何訪問已由PhantomJS下載的文件?
- 爲什麼PhantomJS的屏幕截圖與我的瀏覽器中顯示的不同?附以下
我使用PhantomJS通過https://github.com/sgentle/phantomjs-node/加載網頁,並想知道我們如何訪問PhantomJS下載的文件?
我怎麼能阻止它加載圖像文件
您可以創建過程中通過橋PhantomJS通過--load-images=false
commandline 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');
我想我是設置UA和settings.loadImages錯誤,但現在似乎一切都按預期工作預計臨時文件。 – JehandadK
我不知道是否所有的資源都被緩存了,而且緩存資源的格式也是需要解析的。用PhantomJS明確下載一些文件會更好。如果您對網站和腳本有特定問題,請提出新問題。 –