Phantomjs / Casperjs没有正确评估德国亚马逊网站上的JS / Ajax

时间:2013-08-12 11:44:46

标签: javascript ajax amazon phantomjs casperjs

我遇到了德国亚马逊网站的问题。

此Url http://www.amazon.de/Angebote/b/ref=cs_top_nav_gb27?ie=UTF8&node=872398链接到德国亚马逊交易网站。

在网站上有一个名为“Aktuelle Blitzangebote”的栏目,该栏目在特定时间提供当天的服务交易。

如果我尝试通过phantomjs访问它们,那么'ul.ulResized'中的交易(“Aktuelle Blitzangebote”框中的交易)不会被加载。

我使用以下脚本从网站获取HTML-src:

var casper = require("casper").create({
    pageSettings: {
                 userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
                  viewportSize: {width: 1600, height: 900}
     }

});
var fs = require('fs');

 var address = casper.cli.args[0].replace(/\^/g,"");

 console.log("Address == " + address);

casper.on('remote.message', function (msg) {
      this.echo('remote message caught: ' + msg);
});

casper.start(address);

casper.wait(5000);
casper.then(function()
       {
           console.log("writing");
           fs.write("blitz.html", this.getHTML(), "w");
           console.log("done");
       });

casper.run();

有人可以帮我解决这个问题吗?

祝你好运, Ogofo

1 个答案:

答案 0 :(得分:1)

您可以这样做:

var url = 'http://www.amazon.de/Angebote/b/ref=cs_top_nav_gb27?ie=UTF8&node=872398';

    var casper = require('casper').create({
        verbose: false,
        logLevel: 'debug'
    });

    casper.test.comment('Starting Testing');
    casper.start(url, function() {
        console.log(this.getCurrentUrl());

        this.test.assertHttpStatus(200, siteName + ' is up');

        this.wait(5000, function(){
            console.log(this.getHTML(".ulResized "));
        });

    });

    casper.run(function() {
        this.echo('So the whole suite ended.');
        this.exit();
    });

您还应该能够使用以下选项来选择特定的<li>

console.log(this.getHTML(".ulResized li:nth-child(1)")); //replace 1 with list order number