【问题标题】:Running casperjs per cronjob on heroku在heroku上为每个cronjob运行casperjs
【发布时间】:2014-11-22 15:26:20
【问题描述】:

我在 casperjs 中创建了一个应用程序,它从网站上抓取运动数据。

我想在 heroku 上为每个 cronjob 运行此应用程序,以将运动结果保存在 csv、数据库或外部 google 文档中(尚未决定)。

但是,在我开始为 heroku 实现它之前,我有一个问题:

  • 我为heroku 找到了这个buildpack,它声称它可以运行casperjs 脚本。但是,我需要nodejs 来运行预定的脚本吗?或者我可以在 heroku 上创建一个 cronjob 吗?

非常感谢您的回复!

【问题讨论】:

    标签: javascript node.js heroku phantomjs casperjs


    【解决方案1】:

    您绝对可以在 heroku 上将您的脚本作为 Cron 作业运行。

    第 1 步 - 使用提到的 buildpack 创建应用:

    heroku apps:create myapp --stack cedar --buildpack http://github.com/misza222/heroku-buildpack-casperjs.git
    

    第 2 步 - 添加调度程序和日志插件:

    heroku addons:add logentries
    heroku addons:add scheduler
    

    第 3 步 - 打开调度程序:

    heroku addons:open scheduler 
    

    或使用仪表板,单击我的应用程序 > 常规信息 > 插件 > 调度程序

    第 4 步 - 设置您的 cronjob:

    ./vendor/casperjs/bin/casperjs myCasperScript.js
    

    并选择您希望脚本运行的频率。

    希望对你有帮助!

    【讨论】:

    • 是否可以将casperjs的输出保存到heroku上的csv?这甚至允许吗?非常感谢您的回答!
    • 不幸的是这是不可能的,heroku 的文件系统是只读的。我看到了 2 个解决方案,要么将信息写入数据库(heroku 使用 postgresql),然后您可以轻松导出到 csv。或者您直接从您的脚本上传到另一台服务器。知道你没有使用 node.js,我不确定哪一个是最简单的......也许看看github.com/leesei/heroku-casper-node,看看它是否能给你一些想法
    • 感谢您的回答!我查看了您与我共享的链接,但是,这并不能解决我的问题。我可以使用的一种解决方案是创建一个谷歌表,我通过 json 将我的数据放入其中。如果可以使用 casper,有什么建议吗?为了接受您的回答,我也将不胜感激!
    • 您不需要在评论中举例就可以接受答案。您最初询问是否需要 nodejs 来运行脚本,或者是否可以在 heroku 中创建一个 cronjob。您现在在 cmets 中提出另一个问题。虽然@xShirase 很友好地引导您朝着正确的方向前进,但在我看来,您的新问题最好用一个新的 SO 问题来解决。无意粗鲁,但问题继续从一件事转变为另一件事似乎不合适。你问了一个问题,他回答了。
    • @thtsigma 我完全同意你的看法,这些变形问题发生得太频繁了。 mrquad:如果你花时间写一个关于 SO 的正确问题,它会让你的大脑进入“研究”模式。很多时候,详细写下你的问题的过程会给你答案。话虽如此,我会给你另一个想法:Casper 可以 POST 东西,所以你应该能够将你的数据发送到任何正确配置的端点,无论是谷歌表格还是你选择的服务器上的 php 脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多