casperjs 在nodejs下执行会出去卡住的情况,如何解决?

发布于 2022-09-01 22:17:29 字数 1527 浏览 20 评论 0

google了半天也没找到如何解决~~~~ 希望有人能够解决
抓若干页面的时候,不知道什么时候抓取页面会出现卡住的情况,我查了进程,

我用ps -ef | grep phantomjs 查出的进程,发现

501 21887 21457 0 2:58下午 ttys015 0:00.83

这里的cpu执行时间不断的增加,我怀疑是压根没有执行我的脚本命令,因为我的casperjs里有 onwaitTimeout监听超时的事件,所以想知道大家有遇到这种情况吗?

以下是我的casper脚本:

var fs = require('fs');
var casper = require('casper').create({
    clientScripts: [
        'include/jquery.js', // These two scripts will be injected in remote
    ],
    pageSettings: {
        loadImages: false, // The WebPage instance used by Casper will
        loadPlugins: false // use these settings
    },
    logLevel: "info", // Only "info" level messages will be logged
    verbose: false, // log messages will be printed out to the console
    stepTimeout:10000,
    viewportSize:{width: 1280, height: 768},
    onWaitTimeout:function(){
        this.echo('-----output-----timeout-----output end-----','Info');
    }
});

casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36');
var content = {};
var address = casper.cli.get(0);

casper.start(address);

casper.waitForSelector(".detail-info", function() {
    this.echo('-----output-----' + this.evaluate(function() {
        return $('.brief a').attr('href');
    }) + '-----output end-----', 'INFO'); // Will be printed in green on the console
});


casper.then(function(){
    this.captureSelector('twitter2.png', 'html');
})

casper.run();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苹果你个爱泡泡 2022-09-08 22:17:30

this.exit()

苏佲洛 2022-09-08 22:17:30

我遇到了这个问题,请问有解决吗?我发现是casperjs的子进程phantomjs停住了,过了很久会自己激活,我们的系统是docker

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文