【GAS】Parserライブラリの使い方|インストール手順と使用方法
Google Apps Script(GAS)でWebスクレイピングがしたいと思ったことはありませんか?
GASにもURLフェッチできる専用のクラスが用意されているので比較的簡単にWebサイトの情報を取得することができますが、取得した情報を読み取り・加工・分析・他ツールと連携させるために欠かせないのがParserライブラリです。
この記事ではParserライブラリの概要・インストール・実際に使う方法を詳細に解説します。
すぐにWebスクレイピングを行いたいという方はこちらの記事をご覧ください。
Parserライブラリとは
そもそも「ライブラリ」とは、特定の目的のための処理がパッケージ化された仕組みのことで、様々な用途で用意されているライブラリを使うことで、GASの記述が非常に簡単にすることができます。
Parserライブラリは、スクレイピング処理に特化したライブラリです。GASでスクレイピングを実行するときには必ず利用するといっても過言ではありません。
なぜParserライブラリを使うのか
特定サイトページのデータを取得するのみであればGASで比較的簡単に実現できますが、取得したデータを分析するには「対象となるページの構成」や「取得したいデータが属するHTMLの記述」等を踏まえコーディングを進めなければなりません。
この時、HTML形式で記述された膨大なテキストデータを基礎的な関数やメソッドのみで処理しようとすると、非常に複雑な記述となってしまいます。
そこで、必要になってくるのがこのParserライブラリです。ParserライブラリはHTML形式の記述に対して平易な命令ができるようにパッケージ化されているため、取得したWebページのデータを簡単に処理することが可能になります。
GASスクレイピングを実行する際は、必ずと言ってよいほどParserライブラリを使って分析処理を行うことになるので、ぜひ使い方をマスターしましょう。
Paserライブラリのインストール
Parserライブラリを使うには、ライブラリID(GASのプロジェクトID)で読み込み、自分の環境に最新のライブラリをインストールしておく必要があります。ライブラリをインストールする手順は下記のとおりです。
エディタ左部の「ライブラリ」の「+」ボタンをクリック
ポップアップの「スクリプトID」欄にParserライブラリのIDを入力し「検索」をクリック
*2022年7月現在は下記のIDでした。アップデートで変更になるので最新のIDを調べて入力してみてください。
1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw
Parserライブラリであることを確認し、「追加」ボタンをクリック
Paserライブラリの使い方
Parser.data(String*).from([from text]).to([to text]).iterate()
*HTTPレスポンスを文字コードで文字列変換したString型オブジェクト
それでは実際に使ってみましょう。今回はQiitaトップのタグランキングの情報を取得してみることにします。
ランキング内のHTMLコードを見てみると、各ランキングのタグ名は「<div class="css-1elvcon">」から「</div>」までに記述されていることが分かります。
この取得したい文字列を、前後の記述([from text]と[to text])によって指定します。
function parserTest() {
// URLフェッチ
// スクレイピング対象のURLを指定
let url = "https://qiita.com/";
// フェッチ実行
let response = UrlFetchApp.fetch(url);
let content = response.getContentText();
// Parserライブラリ発動*from~toでスクリプトの抽出範囲を指定する
let texts = Parser.data(content).from('<div class="css-1elvcon">').to('</div>').iterate();
// ランキングを書き出し
for (let i = 0; i < texts.length; i++) {
let text = texts[i];
console.log('rank'+i+": "+text);
}
}
4:53:44 情報 rank0: Python
4:53:44 情報 rank1: Docker
4:53:44 情報 rank2: AdventCalendar2022
4:53:44 情報 rank3: coding
4:53:44 情報 rank4: 初心者
4:53:44 情報 rank5: DoCAP
4:53:44 情報 rank6: C++N4910
4:53:44 情報 rank7: JavaScript
4:53:44 情報 rank8: AWS
4:53:44 情報 rank9: QiitaEngineerFesta2022
実行時点でのランキングが取得できました。
まとめ
この記事ではParserライブラリの概要・インストール方法・サンプルのスクリプトを踏まえて利用方法を開設しました。
スクレイピング実行と処理ステップ詳細は下記の記事で解説しているのであわせて確認してみてください。