Javascript CasperJS连续运行
我有一个简单的CasperJs脚本,看起来像这样:Javascript CasperJS连续运行,javascript,node.js,web-scraping,phantomjs,casperjs,Javascript,Node.js,Web Scraping,Phantomjs,Casperjs,我有一个简单的CasperJs脚本,看起来像这样: var casper = require('casper').create(); casper.start('http://casperjs.org/', function() { this.echo(this.getTitle()); }); casper.thenOpen('http://phantomjs.org', function() { this.echo(this.getTitle()); }); caspe
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {
this.echo(this.getTitle());
});
casper.thenOpen('http://phantomjs.org', function() {
this.echo(this.getTitle());
});
casper.run();
现在,我希望此脚本在循环中执行,直到我停止它,因此我尝试:
var casper = require('casper').create();
setInterval(function() {
casper.start('http://casperjs.org/', function() {
this.echo(this.getTitle());
});
casper.thenOpen('http://phantomjs.org', function() {
this.echo(this.getTitle());
});
casper.run();}, 5000);
但问题是,
casper.run()
也会退出文件执行,而不会创建新的casper实例。对于我的问题,一个难看的解决方法就是创建一个bash脚本,在循环中执行我的命令。我的问题是:如何在终端casperjs myscript.js
中执行一个命令,该命令将连续运行我的抓取脚本,睡眠时间为x秒,直到我停止它?没有时间测试以下内容,但我以前做过类似的事情:
casper.start();
openPages();
function openPages() {
casper.thenOpen('http://casperjs.org', function() {
this.echo('First Page: ' + this.getTitle());
});
casper.thenOpen('http://phantomjs.org', function() {
this.echo('Second Page: ' + this.getTitle());
});
openPages();
}
编辑: 如果要在下一次爬网之前等待特定秒数,请使用
casper.wait()
casper.wait(5000, function() {
openPages();
});