その他
    ホーム技術発信DoRubycasperjs のスクリプトを crontab で実行する

    casperjs のスクリプトを crontab で実行する

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    JavascriptでレンダーされるWebページの特定部分の情報を取ってくるみたいなことをするとき casperjs を使ったスクリプトが便利だけれど、cron実行しようとしたところ思うように動くまでに手こずったのでメモ。

    環境

    $ uname -mprsv
    Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64 i386
    $ node -v
    v10.7.0
    $ phantomjs --version
    2.1.1
    $ casperjs --version
    1.1.4
    $ python --version
    Python 2.7.15
    

    スクリプト

    $ cat /Users/kadosawa/bin/doruby

    #!/usr/bin/env casperjs
    
    var url = "https://doruby.jp/";
    var casper = require('casper').create();
    
    casper.start(url, function() {
      var that = this;
      var title = casper.evaluate(function() {
        return $('#newest-entries div.entry').first().text();
      });
      this.echo(new Date + ' ' + title);
    }); //開始
    
    casper.run();
    

    crontab内容

    PATH=$PATH:/usr/bin:/usr/local/bin
    * * * * * /Users/kadosawa/bin/doruby >> /tmp/doruby.log.txt 2>&1
    

    ポイント
    crontab だと node や phantomjs や python やらのパスがなくてエラーになるのでPATH変数を設定してさしあげます。


    • 118 views