サイトアイコン 上尾市のWEBプログラマーによるブログ

「Google Apps Script クローリング&スクレイピングのツボとコツがゼッタイにわかる本」の感想・備忘録

点数

83

感想

Google Apps Scriptの作成方法から、HTMLの取得・解析、POSTデータの送信などが解説されていた。

本書の内容だけで実用的なスクレイピングを行うことはできないと思うが、入門書としては十分な内容だと思う。

Google Apps Scriptとは

Google Apps Scriptのプロジェクト

・プロジェクトはコンテナバインドプロジェクトとスタンドアロンプロジェクトの2種類がある。

コンテナバインドプロジェクト

・スプレッドシートやドキュメントに紐づく。

スタンドアロンプロジェクト

Google Apps Scriptのトリガー

シンプルトリガー

インストーラブルトリガー

  1. GoogleDrive > 新規 > その他 > Google Apps Script
  2. 以下を入力
    function myFunction() {
    console.log('hello')
    }
  3. プロジェクトを保存
  4. 実行
    実行ログにログが出力される。
  5. デプロイ > 新しいデプロイ > 種類の選択 > ウェブアプリ
    公開する場合は「アクセスできるユーザー」を「全員にする」。

「ライブラリの追加」から以下のIDを入力し、Parserライブラリを追加する。

1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw

コード

const getHtml = ()  => {
  const content = UrlFetchApp.fetch('https://xxx.xx').getContentText('utf-8')
  const title = Parser.data(content).from('<title>').to('</title>').build()
  console.log(title)
  const urls = Parser.data(content).from('<a href="https://').to('"').iterate()
  console.log(urls)
  const content2 = UrlFetchApp.fetch(`https://${urls[0]}`).getContentText('utf-8')
  const title2 = Parser.data(content2).from('<title>').to('</title>').build()
  console.log(title2)
}
const login = () => {
  const content = UrlFetchApp.fetch('https://xxx.xx/login', {
    method: 'POST',
    payload: {
      login_id: 'hoge',
      password: 'hogehoge'
    },
    followRedirects: true
  }).getContentText('utf-8')
  console.log(content)
}
const putSpreadSheet= ()  => {
  const sheet = SpreadsheetApp.openById('xxxxxxxxxxxxxxx').getSheetByName('Google App Script')
  sheet.getRange(1, 1).setValue('これはGASからsetValueで入力されました。')
  sheet.getRange(1, 2, 1, 3).setValues([['これはGASからsetValueで入力されました。', 'これはGASからsetValueで入力されました。']])
}
  1. スプレッドシート > 拡張機能 > Apps Script、で以下を作成
    function muliple100(x) {
    return x * 100
    }
  2. セルに=muliple100(2)を入力
モバイルバージョンを終了