仕様

  • 対象のページのHTMLをシンプルに返すだけ
  • HTMLからJS経由で使用する
    → CORS回避のためjsonp

実装内容

GASの内容(特別エラーハンドリングなどは行っていない)

function scraping(url) {
  if (!url) return null;

  var response = UrlFetchApp.fetch(url);
  var html = response.getContentText('UTF-8');

  return html;
}

function doGet(e) {
  var result = {
    data: scraping(e.parameter.url)
  };

  var responseText = e.parameter.callback + '(' + JSON.stringify(result) + ')';

  var out = ContentService.createTextOutput();
  out.setMimeType(ContentService.MimeType.JAVASCRIPT);
  out.setContent(responseText);

  return out;
}
パラメータ sample
url
対象とするページのURL
https://script.google.com/HOGEHOGE/exec?url=https://example.jp/

クライアントからの取得方法

jsonpの扱いが面倒なのでjQueryでサンプルコードを記載。

$.ajax({
  type: 'GET',
  url: 'https://script.google.com/HOGEHOGE/exec',
  data: {
    url: 'https://example.jp/'
  },
  dataType: 'jsonp',
  success: function(jsonp) {
    console.log(jsonp.data);
  }
});