見出し画像

#4小さな工房=Google Apps Script(GAS)

スプレッドシートとGmail連携からWebスクレイピングまで


導入

Google Apps Script(通称GAS)は、Google Workspaceの中にある 小さな工房
インストール不要でブラウザからコードを書けて、すぐにスプレッドシートやGmailと連携できます。
まさに「日常オフィスに置かれた工具箱」。

ここでは スプレッドシート+Gmailの自動化 と、応用編として Webスクレイピング を扱い、最後に 注意点(セキュリティと限界) にも触れます。


GASとは?

  • Google公式のスクリプト環境

  • JavaScript風の文法で書ける

  • スプレッドシート、Gmail、カレンダーなどGoogleサービスと直結

  • 初回実行時に認証画面が出て、権限を承認すればすぐ実行可能


認証の仕組み

  • 初回実行時に「このアプリを許可しますか?」という同意画面が表示される

  • ここで権限を承認すると、以降は自動で実行できる

  • 外部サービスにアクセスする場合は「高度なGoogleサービス」や UrlFetchApp を利用


ハンズオン① スプレッドシート+Gmail連携

例:シートの内容を毎朝メールで送信

function sendSheetAsEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getDisplayValues();
  
  var message = values.map(row => row.join(", ")).join("\n");
  
  GmailApp.sendEmail("example@example.com", "毎朝のデータ", message);
}

👉 このスクリプトをトリガーに設定すれば「毎朝8時に自動メール送信」も可能。

ハンズオン② Webスクレイピング

例:Webサイトから価格情報を取得

function scrapeExample() {
  var url = "https://example.com/product";
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();
  
  // 正規表現で価格を抽出(例: ¥1234)
  var price = content.match(/¥[0-9,]+/);
  
  if (price) {
    Logger.log("価格: " + price[0]);
  } else {
    Logger.log("価格情報が見つかりません");
  }
}

👉 GASはクラウド上で動くため、PCに環境を作らなくてもすぐ実行可能。
👉 無料でサーバーレス実行できるので「ちょっとしたスクレイピング」に便利。

Webサイト側のセキュリティ対策について

便利なGASスクレイピングですが、多くのWebサイトは 自動取得を防ぐ仕組み を持っています。

  • CAPTCHA(私はロボットではありませんチェック)

  • ユーザーエージェントのチェック(アクセス元がブラウザかボットか判定)

  • 複雑なJavaScript描画(ページを開いてから生成される要素)

👉 UrlFetchAppは一般的なブラウザ挙動を完全に再現できるわけではないため:

  • JavaScriptで描画される動的ページは取得できない場合がある

  • 厳重なセキュリティ対策があるサイトではアクセス自体が弾かれる

つまり 「GASでのスクレイピングには限界がある」 という現実を理解しておくことが大切です。

これを知っておけば、無駄に試行錯誤して時間を浪費せず、必要に応じて Python+Selenium など別の方法を選択できます。


よくあるトラブルと解決策

1. トリガーが動かない

原因:権限が正しく付与されていない
解決策:プロジェクトの「権限再承認」や、スクリプトの再保存で解決

2. 外部API呼び出しでエラー

原因:「高度なGoogleサービス」が未有効化
解決策

  • GASエディタ → サービス追加から有効化

  • Cloudコンソール側でもAPIを有効にする

3. 実行回数制限に引っかかる

原因:無料GASのクォータ上限
解決策:処理回数を抑えるか、Google Workspace有料版で上限を緩和


まとめ

  • GASは「小さな工房」で、Googleサービス連携の入口として最適

  • スプレッドシート+Gmail連携で日常業務を自動化できる

  • UrlFetchAppでスクレイピングも可能だが、サイト側のセキュリティ対策で限界がある

  • 本格的な自動化や大規模スクレイピングはPythonに任せるのが現実的


CTA

もし「毎日のちょっとした作業を自動化したい」と思ったら、GASは一番の入り口です。
保存・シェアして、次の記事も追いかけてくださいね。

いいなと思ったら応援しよう!