首页 文章

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

提问于
浏览
1

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

  • 如何阻止它加载图像文件?

  • 如何访问PhantomJS已下载的文件?

  • 为什么PhantomJS的屏幕截图与浏览器中显示的截图不同?附在下面

From Chrome

From PhantomJS

1 回答

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

相关问题