2013年10月2日水曜日

Casperjsを使用し為替レートを自動取得1/2

私は為替レートを一定時間ごとにメールで届くようにしています。

実際そういったwebサービスが有るような気がしましたが、よくわからなかったので自分でサーバを建ててそこから自動的にメールが送られるようにするシステムを構築しています。



まぁ、システムと言ってもそんなに大層なものでもありませんが一部に需要があるかもしれませんので備忘録を兼ねて書いていきたいと思います。

ちなみに私は以下のような構成で構築していますが多分Windowsだけでもできると思いますので気が向いたらそちらの方も書いていきたいと思います。



構成

使わなくなった古いノートPC(我が家では10年前のFMVで動いています)

OS:CentOS release 5.9 (Final)

必要なソフト

Casperjs

Phantomjs



Casperjsのインストール

git clone git://github.com/n1k0/casperjs.git

cd casperjs

git checkout tags/1.0.2

ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs



Phantomjsのインストール(32bit版)

mkdir ~/tmp

cd tmp

wget https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-i686.tar.bz2

tar jxvf phantomjs-1.9.2-linux-i686.tar.bz2

sudo cp phantomjs-1.9.2-linux-i686.tar.bz2/bin/phantomjs /usr/bin

以下のコマンドでそれぞれバージョンが表示されればOK


[kaz@hoge ~]$ phantomjs -v
1.9.2

[kaz@hoge ~]$ casperjs --version
1.0.2


問題なくインストールできているようなら「sample.js」を試してみます。

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


ここまでできればあとは目的のページからレートを取得するだけです。

取得は自分の好きなサイトから取得すれば良いのですが

今回は「http://nikkei225jp.com/fx/」を利用して取得するscriptを掲載します。



var casper = require('casper').create();

casper.start("http://nikkei225jp.com/fx/",function(){

        var date = this.evaluate(function() {

                return __utils__.getElementByXPath('//*[@id="wtime"]/div[1]').innerHTML;

  //nikkei225jp.com上の日付を取得します
        });
        var usdjpy = date;
        usdjpy += ",";
        usdjpy += "USDJPY";
        usdjpy += ",";
        usdjpy += this.evaluate(function() {

                return __utils__.getElementByXPath('//*[@id="tbl1fx"]/tbody/tr[4]/td[2]/a/div[1]/font/span[3]/b').innerHTML;
        });

        this.echo(usdjpy);
});
casper.run();




以上がサンプルになります。

getElementByXPathの括弧内にXPathで取得したい場所を指定します。

ちなみに上記を実行すると以下のようになります。

[kaz@hoge ~]$ casperjs ex.js
2013/10/06,USDJPY,97.46


ここまでくればあと少しです、あとは自分にメール

が届くようにするだけです。

それでは、続きは次回に。

つづき↓
Casperjsを使用し為替レートを自動取得2/2



FX初心者でも出来る!1日5分簡単副業 WCtake FXメルマガ通信

0 件のコメント:

コメントを投稿