ネット株ログの方にも書いたんですが、今課題としている銘柄「ライブドア」株の取引グラフが、Yahoo!ファイナンスでは最新の情報に書き換えられるので、過去のグラフを見ることができません。じゃぁ毎日グラフ(GIF画像)をwgetすれば良いんじゃないかと、早速Cronでシェルを毎日実行させる事にしました。Webブラウザで参照できたら楽なので、このブログを公開しているフォルダに保存しているので、過去のグラフを見たいって人は参照してみて下さい。正し、私が「ライブドア株」を卒業したら、この情報は削除すると思いますので恒久的にアーカイブする訳ではありません。
株の取引グラフアーカイブ(一日の値動き)
UNIX系OSはプログラムが組めなくても、こういうのの処理をシェルにまとめて記述し、Cronで定期的に実行させる事ができるのが楽です。Windowsだとこうは簡単にできないんじゃないかな。そんな訳で私が思いつきでやった方法を記録しておきます。Linuxなんかを常時稼働させている人は、ちょっと工夫すれば色々な用途に使えると思いますので参考にしていただけたらと思います。
まず、SSHで自分のアカウントを使ってLinuxサーバにアクセスします。直接Linuxサーバを操作できる環境なら、直接コンソールを操作してもよいでしょう。
自分のホームディレクトリに移動して、作業用のディレクトリを作成します。
$ cd
$ mkdir kabu
次にシェルスクリプトファイルを作成してviなどのエディタで編集します。
$ cd kabu
$ touch chartget.sh
$ chmod 700 chartget.sh
$ vi chartget.sh
下記の様な手順を書き加えます。
———————————————————————-
#!/bin/sh
wget chart.yahoo.co.jp/c/1d/4/4753.t.gif
mv 4753.t.gif public_html/yahoo_chart/4753/4753_`date +%y%m%d`.gif
———————————————————————-
wgetで目的とするgifファイルをダウンロードして、mvで公開フォルダにリネームして移動させているだけです。日付別にしたいので、`date +%y%m%d`としています。こうすれば、毎日実行させてもファイル名の重複はないのでずっとアーカイブできます。例えは今日なら、4753_051122.gifというファイルがアーカイブされます。必用に応じてこの2行をベースに欲しい銘柄のチャートを増やせば、自動的にダウンロードが可能となります。
次にcronに登録します。#で始まる行はコメントと認識されるので好きに書いておけばよいでしょう。私は英語苦手なので適当適当(苦笑
$ crontab -e
———————————————————————-
# get yahoo finance daychart script do !
# 分・時・日・月・曜日の順番です
0 21 * * 1-5 /home/sasapurin/kabu/chartget.sh
———————————————————————-
これで月曜日(1)から金曜日(5)の21時00分にchartget.shが実行されます。
日曜日は(0 or 7)です。となると土曜日は(6)ですね。
★注意というか、自分の為に備忘録を記しておきます。
シェルスクリプト(/home/sasapurin/kabu/chartget.sh)を手動で実行した時は、wgetで取得したファイルが、現在のディレクトリに保存される為、mvコマンドが期待通りに働いてくれません。上に記したmvコマンドは、Cronで処理された場合はホームディレクトリに保存されるという前提で作っています。
つまり、Cronに登録する前にテストするなら、下記の様にしなくてはなりません。
$ cd ←ホームディレクトリ(/home/sasapurin/)に移動
$ ./kabu/chartget.sh ←相対パスでシェルを実行
wgetしたgifファイルが行方不明にならない様にイメージする事がポイントです。
思いついたらシェルにして自動実行させ、追々改良を加えていくのがしんどくなくてお勧めです。いきなり完成度高い処理を記述しようとするとしんどいですから。


コメント