やったこと
IMPORTHTML関数を用いて取得したデータを、関数で整形。
整形したデータを、Goole Apps Scriptを用いて一時間ごとに別シートに保存。
作成コード
//TODO: スプレッドシートの取得 //スプレッドシートのid var id= "1W4frwxxnm7xn0Vv3fKtJcwSPRFDb-yh0-JlW9j0PFrg" var File = SpreadsheetApp.openById(id); var baseSheet = File.getSheetByName("データ取得"); //TODO: スプレッドシートの決まった箇所に決まった値を挿入 function MainFrame() { setDataList("データ保存",DataArray(4,14,1,2)); // 2列分取得 } //TODO:スプレッドシートに、取得日時、額面金額、販売率を行に追加する function setDataList(sheetName, DATA_Array){ var Sheet = File.getSheetByName(sheetName); Sheet.appendRow(DATA_Array); // 最終行に配列データを追加する } //TODO:指定範囲のセルから、取得日時、額面金額、販売率をリターンする function DataArray(row,col,rowNum,colNum){ var array = baseSheet.getRange(row,col,rowNum,colNum).getValues()[0]; // getValuesは2次元配列なので、最初の行のみを指定 var date = new Date(); array.unshift(date) // 取得日時を配列の先頭にAppendする return array; // 取得日時、額面金額、販売率をリターンする }
(参考ページ)
【GAS】IMPORTXML関数で取得した値を、1時間おきに定期実行で行を追加する
実行結果
以下の画像に示すように、ほぼ一時間きっかりに、自動的にデータが保存されていく。
補足事項
データを保存するときに、appendRow()関数を用いて別シートの最終行の一つ下にデータを追加していっている。
このとき、
やってみた感想
割と簡単にデータを保存できたのは驚き。
また、スプレッドシートのIMPORTHTML関数で、簡単にスクレイピングができるのには感動した。
特定のサイトの特定の値の経時変化を見たい場合(例えば、株価のデータなど)、このGoogle Apps Scriptを用いると簡単にデータの取得ができる。
その他参考記事
Google Apps Scriptで配列を使ってスプレッドシートにデータ行を追加する方法
Google Apps Scriptでスプレッドシートにデータ行を挿入する2つの方法
コメント