これで解決!GAS Parserライブラリの使い方とデータ取得技術を徹底解説


GAS Parserライブラリの基本
まずは、GAS Parserライブラリで何ができるのかを理解しておこう。
こいつは、
ウェブページからデータを迅速に取得するための便利なライブラリ
だ。
GAS Parserのセットアップ
GAS Parserライブラリを利用するためには、まずプロジェクトにライブラリを追加する必要がある。
GASのライブラリ追加画面から「GAS Parser」を検索し追加しよう。
GAS Parserでデータを取得する方法
サンプルスクリプトで、基本的なデータ取得の流れを見てみよう。
var url = "http://example.com";
var parser = Parser.fetch(url);
var elements = parser.query("h1");
elements.each(function(element) {
Logger.log(element.text());
});
このスクリプトの流れは、URLからHTMLを取得し、指定したタグ要素のテキストをログに出力するというものだ。
fetchメソッドでURLのHTMLを取得し、queryメソッドで特定のタグを指定している。

GAS Parserでの正規表現利用
正規表現を使って特定の文字列を抽出できる。以下はそのサンプルだ。
var pattern = /(.*?)<\/strong>/g;
var matches = parser.text().match(pattern);
matches.forEach(function(match) {
Logger.log(match);
});
このスクリプトでは、正規表現を用いてタグに囲まれたテキストを抽出している。
matchメソッドを使ってフィルタリングをしているぞ。

GASのParserライブラリでデータが取得できない原因とその対策
GASでデータが取得できない時の原因はさまざま。
例えば、サイトの構造が複雑だったり、非同期通信の情報を取得しようとしている可能性もある。
解決するには、以下の方法を試してみよう。
- XPathを使って特定のノードを探す: GAS ParserはXPathも使える。サイト構造に合わせてXPath式を設定するとよい。
- HTML構造を確認する: 目標とするデータがどのように埋め込まれているかを調査することも重要。
- GitHubのGAS Parserリポジトリを参考にする: リポジトリには多くの事例があるため参考になるだろう。リンクする際は、公式のGAS Parser GitHubページを活用しよう。

GAS Parserの反復処理を使いこなす
反復処理により、大量のデータを効率的に処理できる。
var listItems = parser.query("ul li");
listItems.each(function(li) {
Logger.log(li.text());
});
この例では、リスト内の全ての項目を順番に処理してログに出力している。
eachメソッドは、指定した要素群に対して一括処理を行うときに便利だ。
練習問題
以下のコードを基に、次のことを実施してみよう。
1. articleタグ内の特定のクラスを持つ要素のテキストを取得しよう。
2. 正規表現を使用して、全てのメールアドレスを抽出しログに出力しよう。
解答と解説
// 1. 特定のクラスを持つ要素のテキストを取得する
var articles = parser.query("article .specialClass");
articles.each(function(article) {
Logger.log(article.text());
});
// 2. 正規表現でメールアドレスを抽出する
var emailPattern = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g;
var emails = parser.text().match(emailPattern);
emails.forEach(function(email) {
Logger.log(email);
});
解説:
– queryメソッドは、CSSセレクタを使って特定の元素をターゲットにする。
– matchメソッドを用いると、正規表現による文字列の抽出ができる。配列として結果を取り扱うことが可能だ。

