スキップしてメイン コンテンツに移動

GASでCheerio正規スクレ

GASでCheerio正規スクレ

GAS実践でスクレイピングを始める

Google Apps Script(GAS)は、Google Workspace のサービスと連携しながら、Web データ取得を簡単に行える環境です。まずは、UrlFetchApp.fetch() を使って対象ページの HTML を取得し、次に DocumentApp.openByUrl() で取得した HTML をパースします。GAS でスクレイピングを実践する際のポイントは、リクエストヘッダーを適切に設定し、サイト側のアクセス制限を回避することです。例えば、User-Agent をブラウザに近い文字列に変更することで、ブロックされにくくなります。

スクレイピング対象のページが動的に生成される場合は、GAS だけでは不十分なことがあります。その場合は、外部 API を利用したり、ヘッドレスブラウザを呼び出す方法も検討してください。

Parserと正規表現抽出でHTML解析を効率化

取得した HTML を解析する際に、Parser を使うと DOM を操作しやすくなります。GAS では XmlService を利用して XML 形式に変換し、XPath で要素を抽出できますが、正規表現抽出の方が高速に特定のパターンを取り出せるケースもあります。

正規表現抽出の例として、以下のようなコードが挙げられます。

var html = UrlFetchApp.fetch(url).getContentText();
var regex = /

(.*?)<\/h1>/g; var matches = []; var match; while ((match = regex.exec(html)) !== null) { matches.push(match[1]); }

このように Parser と正規表現抽出を組み合わせることで、HTML解析を効率化し、必要な情報だけを高速に取得できます。特に、ページ構造が頻繁に変わる場合は、正規表現で柔軟に対応することが有効です。

定期チェックとCheerioライブラリでWebデータ取得を自動化

情報収集を継続的に行う場合、定期チェックが不可欠です。GAS のトリガー機能を使えば、毎日や毎時間に自動でスクリプトを実行できます。さらに、Cheerio ライブラリを導入すると、jQuery に似た構文で HTML を操作でき、データ抽出が直感的になります。

Cheerio を GAS で使うには、cheerio.min.js をスクリプトエディタに貼り付け、cheerio.load() でパースします。以下は簡単な例です。

var cheerio = Cheerio.load(html);
var titles = cheerio('h2.title').map(function(i, el) {
  return cheerio(el).text();
}).get();

このように Cheerio ライブラリを活用することで、Web データ取得を自動化し、情報収集の効率を大幅に向上させることができます。定期チェックと組み合わせれば、最新情報を逃さずに管理できます。

この記事はAIによって作成されました。

コメント