Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们如何访问PhantomJS下载的文件?_Javascript_Node.js_Phantomjs - Fatal编程技术网

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

Javascript 我们如何访问PhantomJS下载的文件?,javascript,node.js,phantomjs,Javascript,Node.js,Phantomjs,我正在使用PhantomJS加载一个网页,我想知道 如何阻止它加载图像文件 如何访问PhantomJS已经下载的文件 为什么PhantomJ的屏幕截图与我的浏览器中显示的截图不同?附件如下 如何阻止它加载图像文件 在创建过程中,您可以通过桥将--load images=false传递给PhantomJS: var phantom = require('phantom'); phantom.create('--load-images=false', function (ph) {...})

我正在使用PhantomJS加载一个网页,我想知道

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

如何阻止它加载图像文件

在创建过程中,您可以通过桥将
--load images=false
传递给PhantomJS:

var phantom = require('phantom');
phantom.create('--load-images=false', function (ph) {...});
// or
phantom.create({parameters: {'load-images': false}}, function (ph) {...});
或者,您可以在脚本期间通过以下方式进行设置:

如何访问PhantomJS已经下载的文件

PhantomJS不会将任何文件下载到可自定义的位置,例如,如果您单击某个内容。相反,它可能会将下载的文件放入缓存。您可以通过命令行选项(如上所述)启用磁盘缓存:

显示PhantomJS创建的临时文件的默认位置

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

它可能是任何东西。PhantomJS的默认视口为400x300像素(通过媒体查询不同),用户代理字符串与普通桌面浏览器不同。网站可能会运行一些浏览器检测和功能检测脚本,这些脚本可以对PhantomJ进行不同于普通桌面浏览器的分类。它可以是任何对象,但更改视口大小可能就足够了:

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

我猜我没有正确设置UA和settings.loadImages,但现在除了临时文件外,一切都正常工作。我不知道是否所有资源都已缓存,而且缓存的资源都是您需要解析的特殊格式。最好使用PhantomJS显式下载一些文件。如果您对网站和脚本有特殊问题,请提出新问题。
phantom.create('--load-images=false', '--disk-cache=true', function (ph) {...});
page.set('viewportSize', { width:1280, height:800 });
page.set('settings.userAgent', 'some desktop user agent string');