Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CasperJS连续运行_Javascript_Node.js_Web Scraping_Phantomjs_Casperjs - Fatal编程技术网

Javascript 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

我有一个简单的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());
});

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();
});