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

时间:2015-10-24 13:31:25

标签: javascript node.js phantomjs

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

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

From Chrome From PhantomJS

1 个答案:

答案 0 :(得分:3)

  

如何阻止它加载图像文件

您可以在创建期间将--load-images=false commandline option通过桥传递给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不会将任何文件下载到可自定义的位置,例如:点击一下。相反,它可能会将下载的文件放入缓存中。您可以通过命令行选项启用磁盘缓存(如上所述):

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