我尝试使用casperjs来抓取此页面的评论:
http://www.regulations.gov/#!documentDetail;D=APHIS-2013-0013-0083
但是当我将casper导航到它时,它会被卡在“加载”上。页。这是我使用casper.capture();
拍摄的图像
我的完整代码:
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秒,但似乎没有任何效果。它只是卡在加载页面上。
答案 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));
});