スクレイピングで値を取得〜経済指標を自動取得3〜

スポンサーリンク

前回、「みんかぶFX 経済指標カレンダー 予想&速報」からGoogle Apps Scriptを使ってJSON形式で経済指標データを取得して、JSON形式で出力する方法をご紹介しました。

今回は、HTMLをスクレイピングして「重要度」「前回変動幅」を取得します。

[2017/11/21追記]

2017年11月21日に「みんかぶFX 経済指標カレンダー」のJSON部分が変更されました。

当初、11月20日に記事を執筆・アップしていたのですが、全面的に書き換えました。

やはりAPIとして公開されていないものを使う(スクレイピングする)のは、こういうことを覚悟しないといけないですね。

 

Webページの構造を把握する

まず、「みんかぶFX 経済指標カレンダー 予想&速報」がどのような構造のページになっているかを調べます。

取得したい(スクレイピングしたい)値が、どのようなタグで囲まれているのか?を見ていきます。

 

経済指標を表示している箇所は、おおむね以下のような構造になっています。

12_みんかぶ

 

「重要度」はHTML上では数値で示されているところはなく、「★」画像の数(Star fillの数)をカウントする他なさそうです。(5)。

「前回変動幅」は、<td>タグで囲まれた”-1.6″という数値をすればよさそうです(6)。

 

スクレイピングのソースコード

このWebページの構造を踏まえた上で、スクレイピングするソースコードです。

ほとんどはJSONで取得して、足りない重要度、前回変動幅の部分だけは、HTMLの表から取得するようにしているためプログラムすこし複雑になっています。

 

 

ポイントは、スクレイピングする箇所を泥臭く切り出す作業をいかにマメにやっていくか・・・です。

たとえば、13〜17行目、

<div class=”l-section_interval> から </div>までのテキストを切り出す・・・という作業をしています。

 

そして、19~23行目でさらに、

<table class=”ei-list tbl_s mb20em”> から </table> までの文字列を切り出す・・・という作業を行い、目的の文字列が取得できるまで繰り返していきます。

 

コメント(//)で(1)〜(6)としているのが該当箇所になりますので、どのようなことをやっているかを確認してみてください。

 

さいごに

これでGoogle Apps Scriptを使って、みんかぶFXの経済指標から必要なデータを取得して、MetaTraderで使いやすいようにJSONに成形するところまでできました。

次回は、これをMQLから呼び出すところを解説していきたいと思います。

 

コメントを残す

*