根据页面元素的存在,更改文件路径以保存页面内容

时间:2014-11-27 11:42:26

标签: javascript html casperjs

我用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++;
});

1 个答案:

答案 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 之前执行