WbWatcherについて
WbWatcherは、指定したURLのWebページのHTMLデータを読み取り、特定の文字列処理を行って目的のデータを取り出し、表示するものです.
たとえば、米国ドルレートは、いくつかのポータルサイトなどに掲載されていますが、目的のドルレート数値以外にいろいろなデータが表示されてしまいます.また、更新を手動で行う必要がある場合も多いでしょう.
WebWatcerは、目的のデータ(たとえば為替レートの数字)だけを取り出して、小さなWindow 領域内にテキストデータとして表示できます.指定した時間間隔での自動更新が行えます.さらに自動更新に同期して、表示データをテキスト形式のファイル(Logファイル)に書き込んでいくことができます.Logファイルは後でExcelなどで編集することも可能です.株式銘柄の現在価格の表示、特定地域の天候の表示など、処理を記述したスクリプトファイルを作るだけで、広範囲に使えます.
WbWatcherは、スクリプトファイルに記述された処理コマンドに従って動作します.スクリプトファイルはメモ帳などのテキストエディタで作成することができます.
インストール
配布ファイルWebWatXX.zipを任意のフォルダに解凍し,setup.exeを実行してください.
WbWat.exeを実行すると,WbWatcherが起動します.
アンインストールは,コントロールパネルの「プログラムの追加と削除」から行なうことができます.
各部の機能
タブの機能
WbWatcherのウィンドウにはタブが3つあります.
- Dataパネル
取り出したデータを最終的に表示する領域です.
- Settingパネル
各種の設定や操作を行います.自動更新タイマー、Logファイル、スクリプトファイルなどのほとんどの設定は、このタブで行います.
- Webパネル
Webページの確認のために、表示を行うブラウザ画面です.
タブ部分を右クリックすると,ショートカットメニューが表示され,終了,更新,タイマーOn/Off切り替え,Dataタブ内の表示領域の文字サイズやフォント、色,タイトルバー表示切替などの指定ができます. また,タブ部分をダブルクリックしても,タイトルバーの表示ON/OFFを切り替えられます.できるだけWbWatcherが画面内に占める範囲を狭くしたいときはタイトルバー非表示にするとよいでしょう.
Dataパネル
Dataパネルには,目的のデータをWebページから抽出して表示させます. スクリプトでは,D で表します. 文字フォント、文字サイズ、背景色を変えることができます.これらの設定は記憶させることができます.また、Dataパネルの表示内容は、Logファイルに記録できます.これらの機能はSettingパネルで操作できますが、タブを右クリックしてポップアップメニューから行なうこともできます.
Settingパネル
設定などを指定するためのパネルです.
- 更新ボタン スクリプトの実行を手動で行なうときにクリックします.
- 間隔 自動更新を行なうときの時間間隔を分単位で指定します.
- 間隔の右隣のチェックボックス 自動更新機能のON/OFFを切り替えます.
- 終了ボタン WbWatcherを終了します.
- Logボタン 現在のDataタブに表示されたテキストデータをそのままファイルに記録するときクリックします.
- Logボタン右のテキストボックス Log記録するファイル名を入力します.
- Logファイル名右の選択ボタン Logファイルの選択ダイアログを表示します.
- Log自動書き込みチェックボックス 自動更新時にLogファイル書き込みも自動で行なうときにチェックします.
- Log自動書き込みチェックボックス右のリストボックス 実行するスクリプト命令が表示されます.
- 自動更新時間帯 自動更新を行なう時間帯を指定します. 株式市場などのようにデータが変化する時間帯が決まっているときは無駄な自動更新とLog記録を行なわないように指定しておくことができます.
- 有効チェックボックス 自動更新の時間帯指定を有効にします.
- Memoテキストボックス Log記録時にファイルに書き込むメモがあれば,入力します.
- Scriptファイルテキストボックス どこのURLからどのような文字データを取り出して表示するのかといった処理を記述するScriptファイル名を指定します.
- 設定記憶ボタン WbWatcherウィンドウの大きさ,位置,Scriptファイル名,その他各種設定状態を記憶し,次回起動時に使用します.
- Waitテキストボックス WebページのHTMLデータが転送されるまでに、場合によっては時間待ちをする必要があります.でないと、HTMLデータが正常に取得できずScript処理が正常に行なえません.時間待ちの長さは、環境やPCの処理速度などによって変化するようですので、ここに1以上の数値を半角で指定してください.デフォルトは8です.Dataパネルへの表示がうまくいかないときは、さらに大きな値(10以上)にしてみてください.ただし、表示更新に時間がかかるようになります.
- 最下段のテキストボックス 処理対象となるHTMLデータが表示されます. スクリプトでは HT で表されます.
Pageパネル
Webページそのものを確認したいときに使用します.
- 上部テキストボックス 手動でWebページを表示させたいとき,URLを入力します.
- 読込ボタン クリックするとテキストボックス内のURLを表示します.
- 表示エリア Webページが表示されます.
Scriptについて
スクリプトファイルには1行に1つの命令行を記述します. 空行,先頭がシングルクオーツの行,先頭がREMの行は,コメント行として無視されます.
命令行は,[コマンド] タブコード [パラメータ1] タブコード [パラメータ2]...のようにタブコードを区切りとして入力します.
パラメータは通常は,データの入力側(ソース),出力側(デスティネーション),文字列抽出のための区切り文字列などを指定します. 大文字小文字は区別しません.
ソース
ソース(データの読み取り元)として使用できるのは,以下の要素です..
- HT Webページから得たHTMLデータ.
- V1 から V5 文字データを一時的に保存する変数
- TIME 現在のシステム時刻を表す文字列
- DATE 現在のシステム日付を表す文字列
- D Dataタブの表示領域内の文字列
- ダブルクオーツで囲んだ文字列
デスティネーション
デスティネーションは,データの出力先です. 出力先に指定できるのは,以下の要素です.
- HT Webページから得たHTMLデータの表示領域
- D Dataタブ内の表示領域
- TITLE WbWatcherのタイトルバー領域
- V1 から V5 一時記憶の変数領域
コマンド
コマンドは以下のものがあります.
- CLEAR
形式: CLEAR [TAB] デスティネーション
デスティネーションの内容を消去します.
例: Clear D はデータ表示領域をクリアします.
- GetA
形式: GetA [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列より後ろの部分を取り出して,デスティネーションに格納します.
例: GetA HT D "ABC" で,HTには WWWWWABCDEFGH が入っているとき, DにはDEFGHが入ります.
- GetA-U
形式: GetA-U [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
文字列の大文字小文字を問わず検索し,ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列より後ろの部分を取り出して,デスティネーションに格納します.
例: GetA-U HT D ”ABC" で,HTには WWWWWaBCDEFGH が入っているとき, DにはDEFGHが入ります.
- GetAI
形式: GetAI [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列を含む後ろの部分を取り出して,デスティネーションに格納します.
例: GetAI HT D ”ABC" で,HTには WWWWWABCDEFGH が入っているとき, DにはABCDEFGHが入ります.
- GetAI-U
形式: GetAI-U [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
文字列の大文字小文字を問わず検索し,ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列を含む後ろの部分を取り出して,デスティネーションに格納します.
例: GetAI-U HT D "ABC" で,HTには WWWWWABCDEFGH が入っているとき, DにはABCDEFGHが入ります.
- GetB
形式: GetB [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列より前の部分を取り出して,デスティネーションに格納します.
例: GetB HT D "ABC" で,HTには WWWWWABCDEFGH が入っているとき, DにはWWWWWが入ります.
- GetB-U
形式: GetB [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
文字列の大文字小文字を問わず検索し,ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列より前の部分を取り出して,デスティネーションに格納します.
- GetBI
形式: GetBI [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列を含む前の部分を取り出して,デスティネーションに格納します.
例: GetB-U HT D "ABC" で,HTには WWWWWABCDEFGH が入っているとき, DにはWWWWWABCが入ります.
- GetBI-U
形式: GetBI [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列
文字列の大文字小文字を問わず検索し,ソースの文字列から区切り文字列に合致する部分を探し,区切り文字列より前の部分を取り出して,デスティネーションに格納します.
- GetC
形式: GetC [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列1 [TAB] 区切り文字列2
ソースの文字列から区切り文字列1と区切り文字列2にはさまれた部分を取り出して,デスティネーションに格納します.
例: GetC HT D "A" "G" で,HTには WWWWWABCDEFGH が入っているとき, DにはBCDEFが入ります.
- GetC-U
形式: GetC-U [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列1 [TAB] 区切り文字列2
文字列の大文字小文字を問わず検索し,ソースの文字列から区切り文字列1と区切り文字列2にはさまれた部分を取り出して,デスティネーションに格納します.
- GHC
形式: GHC [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列1 [TAB] 区切り文字列2
HTの文字列から区切り文字列1と区切り文字列2にはさまれた部分を取り出して,デスティネーションに格納します. さらにHTは区切り文字列より後ろの部分に置き換えられます.
GHC命令は,特にHTを処理するために特化した命令です.
例: GHC D "B" "F" で,HTにはABCDEFGHIが入っているとき,DにはCDEが入り,HTの内容はGHIになります.
- GHC-U
形式: GHC-U [TAB] ソース [TAB] デスティネーション [TAB] 区切り文字列1 [TAB] 区切り文字列2
大文字小文字を問わず,HTの文字列から区切り文字列1と区切り文字列2にはさまれた部分を取り出して,デスティネーションに格納します. さらにHTは区切り文字列より後ろの部分に置き換えられます.
GHC-U命令は,特にHTを処理するために特化した命令です.
例: GHC-U D "B" "F" で,HTにはABCDEFGHIが入っているとき,DにはCDEが入り,HTの内容はGHIになります.
- GetN
形式: GetN [TAB] ソース [TAB] デスティネーション [TAB] "数値"
ソースの文字列の先頭から数値で指定された文字数を取り出して,デスティネーションに格納します.
例: GetN HT D "3" で,HTには ABCDEFGH が入っているとき, DにはABCが入ります.
- CutAN
形式: CutAN [TAB] ソース [TAB] "数値"
ソースの文字列の末尾から数値で指定された文字数を削除したものを,ソースに戻します.
例: CutN HT "3" で,HTには ABCDEFGH が入っているとき, HTはABCDEが入ります.
- CutBN
形式: CutN [TAB] ソース [TAB] "数値"
ソースの文字列の先頭から数値で指定された文字数を削除したものを,ソースに戻します.
例: CutN HT "3" で,HTには ABCDEFGH が入っているとき, HTはDEFGHが入ります.
- Time
形式: Time [TAB] デスティネーション
デスティネーションに時刻文字列を付加します.
- Date
形式: Date [TAB] デスティネーション
デスティネーションに日付文字列を付加します.
- CR
形式: CR [TAB] デスティネーション
デスティネーションに改行文字列を付加します.
例: CR D
- PUT
形式: PUT [TAB] ソース [TAB] デスティネーション
ソースの文字列をデスティネーションに付加します. 置き換えではなく,付加です.
例: PUT V1 D でV1にはABC,Dには123が入っている場合,Dは123ABCになります.
- Replace
形式: Replace [TAB] ソース [TAB] デスティネーション
ソースの文字列でデスティネーションの内容を置き換えます.
例: Replace V1 D でV1にはABC,Dには123が入っている場合,DはABCになります.
- PutTAB
形式: PutTAB [TAB] デスティネーション
デスティネーション末尾にTABコードを付加します.
- Del
形式: Del [TAB] ソース [TAB] 検索文字列
ソースの中から検索文字列を探し,あれば削除したもので置き換えます.
例: Del HT "DEF" でHTにはABCDEFGが入っている場合,HTはABCGになります.
- Del-U
形式: Del-U [TAB] ソース [TAB] 検索文字列
大文字小文字を問わず,ソースの中から検索文字列を探し,あれば削除したもので置き換えます.
例: Del-U HT "DEF" でHTにはABCDEFGが入っている場合,HTはABCGになります.
- URL
形式: URL [TAB] Url文字列
Urlで指定されたWebページをロードし,HTMLデータをHTに格納します.
例: URL "http://www.abc.ne.jp/"
- Con
形式: Con [TAB] ソース [TAB] デスティネーション
ソースにデスティネーションを結合したものをソースに戻します.
例: Con V1 V2 で,V1にABC,V2にDEFが入っているとき,V1はABCDEFになります.
- LOOPとLOOPEND
形式: LOOP [TAB] "数値"
LOOPEND
LOOPからLOOPENDまでの間に記述してある部分を,数値で指定された回数だけ繰り返します.
Scriptファイルの作成方法は,サンプルスクリプトファイル(Script1.sptからScript9.spt)の内容を参考にしてください.
Script作成手順
- WbWatcherのPageタブをクリックし、テキストボックスに目的のURLを入力して読み込みボタンをクリックします.
- Settingタブに移動します
- 下部のテキストボックス内に、HTMLデータが表示されていますから、ここを右クリックし、ショートカットメニューから「すべて選択」をクリックします.
- さらにもう一度右クリックして、「コピー」をクリックします.
- メモ帳などのテキストエディタを開きます.
- メモ帳を右クリックし、「貼り付け」をクリックします.
- このファイルは、保存しておきましょう.
- 目的のデータを探します.
- 見つけたら、それよりも前で、なるべく近くに、他には存在しないマーカ文字列を決め、クリップボードにコピーします.(仮にmark1がその文字列だとします).ここより前の部分をスクリプトによって切り取ります.マーカ文字列は長くても特に問題はありません.ただし、常に同じ文字列である必要があります.時間によって変化するような文字列は使えません.
- メモ帳などのテキストエディタをもうひとつ開き、新規作成し、ScriptFileを作ります.
- スクリプトファイルには、まず URL [TAB] "http://www.abc........." のように、目的のWebページのアドレスを入力します.[TAB]はTabキーの入力です.
- CLEAR [TAB] D と次の行に入力しておきます.これは、表示領域をクリアします.
- GetA-U [TAB] HT [TAB] HT [TAB] "mark1" と次の行に入力します.
- これで、HTにはmark1より後ろの部分だけが残りました.
- 目的の文字列が <TD>と</TD>ではさまれているとすると. 次の行に GHC-U [TAB] D [TAB] "<TD>" "</TD>" と入力します.
- これで、DすなわちDataタブ内の表示領域に、目的のデータが挿入されました.また、HTの内容は、目的のデータを挟んでいた</TD>より後ろの部分に置き換わっています.
- さらに、他のデータを取り出したいときは、GetA-UやGHC-Uなどを使って、文字列を取り出してDに追加していきます.
- 表になっているデータなどを取り出すときには、LOOP命令も使えます.
- Scriptファイルに名前をつけて保存します.
- WbWatcherのSettingタブに戻り、ScriptFile名をさきほど保存したファイルに変更します.選択ボタンを使って指定することができます.
- 更新ボタンをクリックしてみます.Scriptに間違いがなければ、目的のデータがDataタブ内の表示エリアに表示されたはずです.
WbWatcher起動時に,コマンドラインパラメータとしてScriptファイル名を指定することができます. この機能により,デスクトップにショートカットアイコンを作成した場合,,プログラムのリンク先として
C:\WebWatexe c:\wbw\script1.spt のように指定すれば,そのアイコンから起動したときには指定したスクリプトファイルを自動的に読み込みます. そのほかの場合は,起動時には設定記憶ファイルの内容に従ってスクリプトファイルが読み込まれます.
サンプル
次のスクリプトは,Yahoo JapanのYahoo Financeから日経平均と、米国ドルレートを取り出して表示します.
URLは "http://quote.yahoo.co.jp/"です.
以下スクリプト--------------------
'Yahoo JapanのYahoo Financeから取り出す日経平均と、米国ドルレートです.
URL "http://quote.yahoo.co.jp/"
CLEAR D
PUT "日経平均: " D
GetA-U HT HT "日経平均株価 日中チャート"
GETA-U HT HT "日経平均株価</nobr></small></a></td>"
GHC-U D "<td nowrap><small>" "</small></td>"
CR D
GetA-U HT HT "米国$"
GetA-U HT HT "</SMALL>"
PUT "US$:" D
GetC-U HT V1 "<SMALL>" "</SMALL>"
PUT V1 TITLE
PUT V1 D
以上スクリプト--------------------
WbWatcher配布パッケージのサンプルスクリプトには,次のようなものが含まれています.
- Script1.spt
日経平均株価,ドル円為替レート,ガソリンと灯油の各月限先物価格,原油先物価格を表示.
二つの異なるURLからのデータを表示します. LOOP命令も使っており,スクリプト作成の参考になると思います.
- Script2.spt
GOOで京都府北部の天気情報と,Yahooで東京都新宿区の天気情報を取り出して表示します.
- Script3.spt
上記Script2の京都府北部天気情報だけのものです. 個別のスクリプトファイルを連結して,CLEAR命令を削除するだけで,複数のWebページからの情報を一度に表示できます.
- Script4.spt
Script1の前半部分です.
- Script5.spt
まず、日経平均とUS$レートをYahooFinanceのトップページから抽出表示します.次にYahoo Financeの個別株価ページから株価データを抽出表示します.この例では、トヨタ、住友商事、東京電力です.タイトルバーには、米ドルレートを表示します.最小化しても、アイコンの数値から米ドルレートは確認できます.URL命令の銘柄コード部分と、GETA-U命令の銘柄コード部分を変更するだけで,他銘柄の表示も可能です.
- Script6.spt
Script1の石油製品および原油価格部分のみです.
- Script7.spt
Script2の新宿ピンポイント天気情報部分のみです.
シェアウェアについて
WbWatcherはシェアウェアです。本ソフトウェアに関するすべての権利は,作者M. Komが保有します。本ソフトウェアの使用は,以下の事項に同意の上,使用者本人の責任において行なって下さい。継続利用の場合には,登録,送金をお願いします。
1. 本ソフトウェアの作者は,本ソフトウェアのバージョンアップ,不具合の修正,機能変更、問い合わせに対する返答を,作者の時間,能力の許す範囲で行いますが,それらを行なう義務を負うものではありません。
2. 本ソフトウェアの使用により生じたいかなる損害も,作者はその責を負いません。
3. 本ソフトウェアを使用するためのスクリプトファイル作成は、使用者が作成することを基本とし、作者は使用者のためのスクリプトファイル作成の義務は一切負いません.ただし、有償でその作成を行なうことがあります.
登録金額は,1名の利用者につき1000円とします。 ベクターシェアレジによる登録ができます。シェアウェア番号は、SR033462です.サポートホームページからもリンクしています。送金代行を利用できない場合や多数の登録を行う場合は,まず,komamino@ivory.plala.or.jpまで連絡先(E-メールアドレスまたはFAXまたは住所)をお知らせください。折り返し,振り込み先(ご希望により郵便局あるいは銀行)を返信します。振込確認後にこちらからパスワードを連絡先に返信します。
スクリプトファイル作成依頼(有償)をご希望の場合は,まずご連絡ください.
なお,未登録状態では、WbWatcher起動時およびスクリプト実行時に、パスワード入力を求めるダイアログが開くことがあります.