スプレッドシートにWebデータを記述する方法として
現在の利用
を使っています。簡単で、便利なのですが、以下の問題がありました。
問題
- 必要なデータを取得できない場合がある。
記述方法をいろいろと試してみましたが、取得できませんでした。 - 必要なデータ以外が取得される。例:500円 円は不要です。
- タイミングにより、取得時にエラーが発生する時がある。
問題解決の方法を検討しています。
Google Apps Scriptでwebデータ取得 検討
【難しくない】GASでwebスクレイピングして正規表現でデータを集める
を見て実行してみました。
感想
- Webデータの取得は、思った以上に簡単
- Webデータから、必要なデータの取り出しが結構大変。
HTMLファイルを確認して、指定する必要がある。
サンプル
function Get_yahoo() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
var getUrl = "https://www.yahoo.co.jp/";
var content = UrlFetchApp.fetch(getUrl).getContentText('UTF-8');
上記で、https://www.yahoo.co.jp/のページデータを取得
以下で、A1にページデータを記述
sheet.getRange("A1").setValue(content);
以下で、ページデータの <title>で囲まれた部分の文字を取得し、B2セルに記述
例) <title> ここの文字 </title>
var titleRegexp = new RegExp(/<title>.*?<\/title>/);
var title = content.match(titleRegexp);
var titles = [];
for (var i = 0; i < title.length; i++) {
var titleName = title[i]
.replace(/<title>/,'')
.replace(/<\/title>/,'')
titles.push([titleName]);
}
sheet.getRange("B2").setValue(titles); //セルに値を記述する
}