我们如何访问PhantomJS下载的文件?

我正在使用PhantomJS通过https://github.com/sgentle/phantomjs-node/加载一个网页,并想知道

  • 我怎样才能阻止它加载图像文件?
  • 我如何访问已经由PhantomJS下载的文件?
  • 为什么PhantomJS的屏幕截图与我的浏览器中显示的不同? 附在下面

来自Chrome 从PhantomJS

我怎样才能阻止它加载图像文件

您可以在--load-images=false过程中将--load-images=false 命令行选项通过桥传递给PhantomJS:

 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不会下载任何文件到可定制的位置,如果你点击一些东西。 相反,它可能会将下载的文件放入caching中。 您可以通过命令行选项启用磁盘caching(如上所示):

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

这个答案显示了PhantomJS创build的临时文件的默认位置。

为什么PhantomJS的屏幕截图与我的浏览器中显示的不同?

这可能是任何事情。 PhantomJS具有400×300像素的默认视口(通过媒体查询产生差异)以及与普通桌面浏览器不同的用户代理string。 网站可能会运行一些浏览器检测和function检测脚本,它们可以将PhantomJS与普通的桌面浏览器区分开来。 这可能是任何事情,但改变视口的大小可能就足够了:

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