我用casperjs下载了很多页面html,但是我希望将它们分成2个文件夹。 一些文件包含id =“trie”而其他文件不包含。
请问我该怎么办?
这是我的剧本
casper.repeat(j , function(){
casper.open(arrdata[i]); // arrdata[i] : contains url of file to download
casper.wait(5000, function(){
file = 'pages/road/r_' + i +'.html';
fs.write(file, casper.getHTML(), 'w');
});
i++;
});
但我想这样做
casper.repeat(j, function(){
casper.open(arrdata[i]);
if ("id=trie" exists in contains of arrdata[i] ){
this file is put to pages/trie/...html
} else {
this file is put to pages/road/...html
}
i++;
});
答案 0 :(得分:0)
您想使用exists函数:
var i = 0;
var fs = require('fs');
casper.repeat(j, function(){
(function(i){
casper.thenOpen(arrdata[i], function(){
if (casper.exists("#Trie")){
fs.write("pages/trie/"+i+".html", casper.getHTML());
} else {
fs.write("pages/road/"+i+".html", casper.getHTML());
}
});
})(i);
i++;
});
请注意,这必须在一个步骤中完成,否则会遇到并发问题。在您的代码中,所有open
次调用都会在执行第一个wait
之前执行。