CasperJS没有加载javascripts?

时间:2016-08-11 21:23:01

标签: javascript web-scraping casperjs

var casper = require('casper').create({
viewportSize: {
    width: 1920,
    height: 1080
},
verbose: true,
logLevel: 'debug'
});

var utils = require('utils');
casper.options.onResourceRequested = function(C, requestData, request) {
    utils.dump(requestData.headers);
};
var url = casper.cli.get('url');
var filename = casper.cli.get('filename');
var headers = casper.cli.get('storefront');

if (headers != null) {
    casper.userAgent('iTunes/12.4.3 (Windows; Microsoft Windows 10.0 x64 Business Edition (Build 9200); x64) AppleWebKit/7601.6016.1000.7');
}

casper.start().then(function() {
    casper.page.customHeaders = {
        'X-Apple-Store-Front': headers,
        'X-Apple-Tz': '3600'
    };
    casper.thenOpen(url, function() {
       this.wait(2000, function() {
        var fs = require('fs');
        fs.write('asd.html', this.getHTML(), 'wb');
        this.capture(filename);
    });
});
});
casper.run();

casperjs screenshot.js --storefront="143441-1,12 ab:SwTTXLh0" --url="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?cc=us&id=37" --filename=tv.jpg

尝试转储此页面时,它不会给我完整的javascript轮播或任何内容。老实说,我不知道导致加载失败的原因是什么,并且想知道是否有人对此有任何其他经验?

PhantonJS版本是2.1.1。 CasperJS版本是1.1.1。

1 个答案:

答案 0 :(得分:0)

我面临同样的问题。在PhantomJS ticket中有几件事需要检查:

  • 尝试使用this.debugHTML()输出Casper解释的html,以查看您要加载的脚本是否在实际的html中(可能因为奇怪/旧的userAgent而被省略)
  • 您正在使用的Webkit版本
  • 尝试通过onResourceRequestedonResourceReceived查看网络流量,看看是否真实地请求并接收过该脚本。

可悲的是,在我的情况下所有这些看起来都不错,但页面仍然是空白的。希望它可以帮助别人。如果您有关于要检查的内容的其他提示,请告诉我。