Javascript 根据页面元素的存在,更改文件路径以保存页面内容
我下载了许多带有casperjs的html页面,但我想将它们分别放在两个文件夹中。 某些文件包含id=“trie”,而其他文件不包含 请问我能做什么 这是我的剧本Javascript 根据页面元素的存在,更改文件路径以保存页面内容,javascript,html,casperjs,Javascript,Html,Casperjs,我下载了许多带有casperjs的html页面,但我想将它们分别放在两个文件夹中。 某些文件包含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
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++;
});
您要使用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
之前执行的。您的意思是url看起来像这样:这是一个假url,我只是问这是否是格式,或者您的意思是页面上是否有一个元素具有id=“trie”
?您有什么想法吗?请?我的意思是,如果在获得的页面中有一个元素id=trie非常感谢,我会测试这个,我会让你继续发帖。请在一个步骤中回答你的意思是什么?这些文件都在pages/road/中;(很抱歉,忘记了IIFE。您确定有包含id=“trie”
的页面吗?很抱歉,这是trie的问题,但不是trie,这是我的错误,但是什么是| | FE,拜托?这很好地说明了它是什么以及为什么需要它。