CasperJS,页面卡在加载屏幕上

时间:2014-06-18 18:43:12

标签: javascript jquery web-scraping casperjs

我尝试使用casperjs来抓取此页面的评论:

http://www.regulations.gov/#!documentDetail;D=APHIS-2013-0013-0083

但是当我将casper导航到它时,它会被卡在“加载”上。页。这是我使用casper.capture();

拍摄的图像

enter image description here

我的完整代码:

var x = require('casper').selectXPath;

casper.userAgent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');

casper.start('http://www.regulations.gov/#!documentDetail;D=APHIS-2013-0013-0083');

casper.then(function () {
casper.capture('ourImage1.png');
console.log('Copying comment from Regulations...');
casper.wait(3000, function() {
    var text = casper.fetchText(x('/html/body/div[3]/div[2]/div[2]/div[3]/div/table/tbody/tr/td[1]/div/div[3]/div[1]/div/div[2]'));
    console.log(text);
    casper.wait(3000, function() {
        casper.capture('ourImage2.png');
    });
});
});

casper.run();

我甚至用casper.wait()加载了30秒,但似乎没有任何效果。它只是卡在加载页面上。

1 个答案:

答案 0 :(得分:0)

如果您更改此项(可怕的)userAgent或完全删除该行,则此功能完全正常:

casper.userAgent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');

该站点可能会提供特殊的IE 6优化版本,可以打破phantomjs解析。当我在测试前添加以下代码时,它显示了多个错误,这些错误在没有userAgent的情况下消失了。

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

casper.on("resource.error", function(resourceError){
    this.echo("res.err: " + JSON.stringify(resourceError));
});