目次
ネットでColdFusionで作れる簡単な案件はないか探していたところ、
以下のような案件がありました。
「適時開示情報閲覧サービス」で「株主優待」を検索して確認しているが、毎回その作業が面倒。メール通知してもらうと便利。
株はやっていませんが、
株主優待券生活で注目を集める桐谷さんが気になっていたので、
株主優待に興味がありました。
こちらの記事を読むと、やってみたくなりました。
昔、先物取引をやったことがありますが、
お金が儲かるとか損したとか、疲れました。
結局負けました。
それよりは、ゆるくやったほうがいいというか、
株主優待は、いいかもしれません。
ちなみに、
「適時開示情報閲覧サービス 株主優待」
でググってみると、以下の記事がありました。
なるほど、優待の条件を変更する企業が増えているとのこと。
だから、
「まめにチェックしたいが、面倒」
ということですね。
概略としては、以下のとおりです。
ColdFusionで、一定間隔でプログラムを実行する設定をしていても、
なんらかの原因で、実行されない場合があります。
実行されているかどうかの確認のためにも
ログは必要です。
ついでに、ログに検索結果をセットし、画面に表示すると
いつの検索結果か、わかりやすいですね。
検索結果の内容は、
見た目では、テーブルのこの位置ということはわかりますが、
どうやって特定のデータを取得するかは難しいと思います。
そうなると、ライブラリを使うと便利です。
簡単に言うと、
自分で作ったHTML文書は、JavaScriptではjQueryで操作できますが、
サーバ側でjQueryと同じようにできるライブラリです。
このライブラリは、jsoupライブラリといいます。
ColdFusionはJava上で動いているので、
Javaライブラリとの相性は抜群です。
一定間隔でプログラムを実行しますが、
「適時開示情報閲覧サービス」では
検索は日にち単位となっています。
1時間単位でプログラムを実行すると、
その1時間内に該当データがあった場合だけ、
メール送信したいものです。
検索条件は「株主優待」としていますが、
場合によっては変更したい場合があります。
また、メールアドレスやメールサーバの設定も
各自それぞれ設定が必要ですので、
init.xmlに設定することにしました。
<init> <max_cnt>24</max_cnt> <key>株主優待</key> <mail_from>from@hoge.com</mail_from> <mail_to>to@hoge.com</mail_to> <mail_port>587</mail_port> <mail_server>smtp.hoge.com</mail_server> <mail_username>hoge@hoge.com</mail_username> <mail_password>pass</mail_password> <mail_useTLS>yes</mail_useTLS> </init>
※中身は適当です
ログファイル名は、以下のようにしました。
log_yyyymmddHHmm_x.txt
※年月日時分がファイル名になります。
※.txtの前のxは、該当件数です。
日時をファイル名にすることによって、
ファイル名順=日時順
となります。
ファイル作成日時を使ってもいいですが、
デバッグなどテストするときに、
今回のようなファイル名の方が便利です。
タスクを1時間に設定しても、
自分のPCで開発している場合は、PCの電源を切る場合もあります。
その場合は、当然のことながら、プログラムは動いていません。
動いていなければしょうがないですが、
動きだしたら、前回のログを元に、
その時間から現在までの時間を対象にした検索結果を
抽出する必要があります。
ログファイルが日時となっているので、実現可能です。
ほとんどの場合は、タスクを設定すると、常に設定したとおりに動きます。
開発中のトラブルかなにかで、タスクが動いていない場合があったとしても、
ログ用の画面を見ることによって、動作の確認ができます。
また、ログに検索結果の内容をセットすることによって、
いつ該当データがあったかを、画面上で確認することができます。
画面も自動的に更新するようにしました。
「適時開示情報閲覧サービス」で、
表示されたブラウザでマウスの右クリックをしても、
なにも表示されません。
ソースの確認が簡単にはできない状態です。
ファイルを保存して、ソースを確認。
検索してみるが、うまくいかない。
よく調べると、隠しパラメータが。。。
うまく検索できれば、あとはデータ解析するだけですね。
このページの内容をまとめた無料レポートを作成しました。
そして、ソースをまとめました。
「うたらぼプライム」に参加するとダウンロードできます。
ぜひ、ソースを確認していただいて、役立ててください。