[Google Apps Script] 指定したページのHTMLをスクレイピングする方法
1 min read
仕様
- 対象のページの 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);
},
});