GASで極める!動的ページのウェブスクレイピングからログイン処理まで徹底解説
動的なページをGASでスクレイピングって、普通のスクレイピングとどう違うんだろ?しかも、ログイン処理まで必要って難しそうで…

猫男

catman
心配無用さ、catmanがGASを使ったスクレイピングの極意を教えてやる。まずは基本からだ。
GASで始めるウェブスクレイピングの基本
スクレイピングを始めるには、まずGASの基本的な機能を理解しよう。
GASでの基本的なスクレイピング構造
GASでは、UrlFetchAppを活用してウェブページのHTMLを取得できる。以下がその基本形だ。
function fetchHtml(url) {
const response = UrlFetchApp.fetch(url);
return response.getContentText();
}
✅ このスクリプトは指定したURLのページを取得し、その中身をテキストとして返す。
動的ページをスクレイピングするためのGASテクニック
動的ページはJavaScriptで構築されるため、静的なHTMLだけを取得しても十分ではない。ここで、HTMLParserを活用する。
function parseHtml(url) {
const html = fetchHtml(url);
const $ = Cheerio.load(html);
return $('title').text();
}
✅ Cheerioライブラリを使用して、取得したHTMLを解析し、特定の要素を選択して抽出する。
Cheerioって聞いたことある!HTMLを解析するのに便利なんだね。

猫男
ログインが必要なページのスクレイピング
ログイン処理を含むスクレイピングでは、GASでのPOSTリクエスト活用がカギとなる。
GASでのログイン処理の実装
ログインページへのPOSTリクエストを送り、クッキー情報を保持する。
function loginAndFetch(url, username, password) {
const options = {
'method': 'post',
'payload': {
'username': username,
'password': password
}
};
const response = UrlFetchApp.fetch(url, options);
return response;
}
✅ 上記のコードはPOSTリクエストを使用してユーザー認証を行い、セッション情報を得る。
セッションを維持したスクレイピング
一度ログインした後、ページ遷移を行う。
function fetchAfterLogin(sessionUrl) {
const options = {
'headers': {
'Cookie': 'session_id=xxxxx'
}
};
const response = UrlFetchApp.fetch(sessionUrl, options);
return response.getContentText();
}
✅ ここでは、保持したセッションIDをヘッダに追加して、次のページを取得する。

catman
これでログインが必要なページも自由にスクレイピングできるようになるだろう。次はXPathによる要素選択技を見てみよう。
XPathを用いたGASスクレイピングの応用
XPathはHTMLドキュメントから特定の情報を抽出するための強力なツールだ。
GASでXPathを使う方法
function fetchWithXPath(url, xpathExpression) {
const html = fetchHtml(url);
const wrappedHtml = Xml.parse(html);
const result = XmlService.evaluate(xpathExpression, wrappedHtml).asText();
return result;
}
✅ XPath式を用いて、HTMLから特定の要素を抽出するために役立つ。
練習問題
次のサイトをGASでスクレイピングして、ページタイトルをコンソールに出力するスクリプトを書きましょう。
解答・解説
function exampleScrape(url) {
const html = fetchHtml(url);
const $ = Cheerio.load(html);
Logger.log($('title').text());
}
✅ このスクリプトでは、指定したURLのページタイトルを抽出してログに出力している。
これなら自分でも試せそう!スクレイピング技術って面白いね。

猫男

catman
その意気だ。これからもGASを使いこなして、多くの情報を自分のものにしていくといい。