非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

GoogleスプレッドシートのIMPORTHTML関数でWebサイトの表やリストを取得する

   

GoogleスプレッドシートにはIMPORTHTMLというめちゃくちゃ便利な関数があって、Webサイトにある表やリストを抽出してスプレッドシートに展開してくれます。こういったスクレイピング機能はWebアプリならではで、ローカル環境に軸足のあるExcelではなかなか難しい機能です。なくはないけど関数で一発取得ってわけにはいきません。

今回はIMPORTHTML関数について簡単に紹介します。

今回取得するWebサイト

今回取得するWebサイトはYahooファイナンスの株価の表(下図矢印)にします。

 

IMPORTHTML関数の使い方

IMPORTHTML関数の使い方は以下のとおりです。

IMPORTHTML(URL, クエリ, 指数)

  • URL – 検証するページの URL です。プロトコル(http:// など)も含めます。
  • クエリ – 目的のデータを含むアイテムの種類を “list”(リスト)か “table”(表)で指定します。
  • 指数 – 対象の表またはリストについて、HTML ソース内で定義されている番号で 1 から順に指定します。

 

Yahooファイナンス情報を取得してみよう

それでは早速IMPORTHTML関数を使ってみましょう。上記解説の通り以下の構文をA1セルに入力してみました。

=IMPORTHTML("https://stocks.finance.yahoo.co.jp/stocks/history/?code=998407.O", "table", 1)
 

 

 

入力してEnterキーを押すと数秒くらい「Loading…」と現れます。

 

結果がこちら。残念ながら目的の表は得られませんでした。

 

サイト内のどこを読みに行ったかというと下図の赤丸のところです。ここもTableタグを使って表していたようです。

 

なので”次のテーブル”を読みに行くために第三引数を「2」に変えてみます。

=IMPORTHTML("https://stocks.finance.yahoo.co.jp/stocks/history/?code=998407.O", "table", 2)

すると今度は目的の表をゲットすることができました。赤丸で示したとおり2番めのテーブルだったようです。

 

スポンサーリンク

 - Google Dirve