webサイトの情報を収集して、一覧化/整形したいケースってよくありますよね?
その作業を自動で行う仕組みが「webスクレイピング」です。
webスクレイピングは色々なプログラミング言語で実行できますが、GAS(Google App Script)が最適と考えています。
というのも、収集した結果を出力先は、Googleのスプレッドシートが主流だと思うので、同じGoogleのサービス同士を使った方、親和性が高いです。
GASのwebスクレイピングにしようできるライブラリとして調べてみると、Parserというものに関する記事が多かったので、今回はParserライブラリを使ってみます。
Parserライブラリの追加
-
「ライブラリの追加」の画面が出てくるので、ParserライブラリのIDである「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」を入力して、「検索」ボタンをクリックします。
Parserの使い方
- 収集したいwebサイトの全体のhtmlを取得します。1行目の右辺を取得したいサイトのURLに変更するだけでOKです。
var url = "[webサイトのURL]";
var response = UrlFetchApp.fetch(url);
var html = response.getContentText('UTF-8');
- 以下のコードで取得できます。
var elem = Parser.data(html).from([開始位置のパターン]).to([終了位置のパターン]).build();
ここで、fromメソッドとtoメソッドに、抽出したい部分の情報を記載します。
例えば、サイトのタイトルを抽出したい場合は、以下のようになります。
var elem = Parser.data(html).from('<title>').to('</title>').build();
参考記事