GoogleスプレッドシートのGOOGLEFINANCE関数は、Google Finance から「米国株」の証券情報を取得可能です。
しかしながら、現状では「日本株」の証券情報は取得できません。
Google Finance上に日本株の情報自体はあるのに・・・。非常に残念です。
他サイトから日本株の証券情報を取得しても良いのですが、敢えてGoogle Financeから証券情報を取得してみます。
今回は「(8591)オリックス」の現在株価を取得してみます。
IMPORTXML関数
IMPORTXML関数を使用してGoogle Financeから証券情報を取得します。
構文
IMPORTXML(URL, XPath クエリ)
第一引数 - URL
・URL - 検証するページの URL です。プロトコル(http:// など)も含めます。
・URL の値は二重引用符で囲むか、適切なテキストを含むセルへの参照にする必要があります。
第一引数のURLには、オリックスの証券情報のURLを指定します。
https://www.google.com/finance/quote/8591:TYO?hl=ja
第二引数 - XPath クエリ
・XPath クエリ - 構造化データで実行する XPath クエリです。
・XPath について詳しくは、http://www.w3schools.com/xml/xpath_intro.asp (英語)をご覧ください。
ブラウザから対象URLにアクセスして、第二引数のXPathを確認します。
今回はGoogle ChromeでXPathを確認してみます。
1. 開発ツールを表示する
"F12"キーを押して開発ツール(Chrome DevTools)を開きます。
(ブラウザ画面上の何も無いところを右クリックして"検証"を選択しても大丈夫です。)
2. Webサイトのソースから、現在株価の位置を確認する
現在株価にマウスカーソルを合わせて右クリックして"検証"を選択します。
すると、開発ツール側のWebサイトのソースがハイライトされます。
これが現在株価の位置になります。
3. 現在株価のXPathを確認する
ハイライトされた部分を右クリックして Copy -> Copy XPath の順に選択します。
クリップボードにXPathがコピーされたので、一旦テキストファイル等にXPathを貼り付けてみます。
//*[@id="yDmH0d"]/c-wiz/div/div[4]/div/div/main/div[2]/div[1]/div[1]/c-wiz/div/div[1]/div/div[1]/div/div[1]/div/span/div/div
先頭の//*[@id="yDmH0d"]
に含まれるダブルクォーテーションは、IMPORTXML関数に入れる際には文字列として認識させる必要があるため、ダブルクォーテーションを2つ続けて入力します。
//*[@id="yDmH0d"]
↓
//*[@id=""yDmH0d""]
【参考】
グーグルスプレッドシートの関数で『ダブルクォーテーション(”)』を文字列として認識させる方法
IMPORTXML関数の引数を整理すると以下の通りになります。
引数 | 値 |
---|---|
第一引数 - URL | "https://www.google.com/finance/quote/8591:TYO?hl=ja" |
第二引数 - XPath クエリ | "//*[@id=""yDmH0d""]/c-wiz/div/div[4]/div/div/main/div[2]/c-wiz/div/div[1]/div/div[1]/div/div[1]/div/span/div/div" |
スプレッドシートにIMPORTXML関数を入力
IMPORTXML関数に引数を指定してスプレッドシートに入力します。
=IMPORTXML("https://www.google.com/finance/quote/8591:TYO?hl=ja","//*[@id=""yDmH0d""]/c-wiz/div/div[4]/div/div/main/div[2]/c-wiz/div/div[1]/div/div[1]/div/div[1]/div/span/div/div")
エラーになりました。
自分なりに調べてみましたが、エラーになる原因は特定できず・・・。
(XPathが深すぎて正しく認識できないのかな?)
エラーの解消方法
XPathを編集してエラーを解消します。
先ほどハイライトされた部分を改めて確認します。
<div class="YMlKec fxKbKc">¥2,448.50</div>
となっているので、第二引数のXPathを//*[@class=""YMlKec fxKbKc""]
に置き換えます。
※ダブルクォーテーションを2つ続けることを忘れずに。
=IMPORTXML("https://www.google.com/finance/quote/8591:TYO?hl=ja","//*[@class=""YMlKec fxKbKc""]")
これでGoogle Financeからオリックスの株価を取得できました。
関連記事
以上、最後まで読んでいただき、ありがとうございました。