我需要并行打开数组的所有链接
如何制作?
在我的代码中,所有链接将逐个打开,而不是并行打开
这是我的代码:
casper.then(function(){
links = this.evaluate(function(){
var links = document.getElementsByTagName('a');
links = Array.prototype.map.call(links,function(link){
return link.getAttribute('href');
});
return links;
});
});
casper.then(function(){
this.each(links,function(self,link){
self.thenOpen(link,function(a){
this.echo(this.getCurrentUrl());
});
});
});
casper.run(function(){this.exit()});
答案 0 :(得分:1)
casper
对象代表一个浏览器窗口。
一种方法是创建多个casper
个对象,每个URL要并行获取一个。请注意this is not officially supported,因此可能很脆弱。
另一种方法是使用bash脚本启动casperjs
的多个实例,并为每个实例提供一组要获取的URL。这很干净(如果使用持久性cookie,您可能希望确保它们各自都有自己的cookie文件:--cookies-file=/path/to/cookies.txt
),但您可能更难编写脚本,具体取决于您获取初始列表的方式网址。