Googleの基本機能、スプレッドシートだけを用いた簡易的なスクレイピングの方法を紹介します。
今回は、植物の情報をまとめたデータベース「WFO https://worldfloraonline.org/ 」を例に、「ある種が地図情報を持っているか」について知らべていきます。
WFOのデータベースには、種ごとに生育地の地図データを持っているもの、
前者のソースコードには「OpenLayers」という文字列が含まれていますが、後者には含まれていません。
ソースコードはWindouwsの場合画面上で右クリック→「開発者ツールを表示」で見ることができます。
今回はスプレッドシートに「地図の有無を調べたいURL」を羅列し、ソースコードに必要な情報が含まれているかどうかを判別します。
以下のスクリプトを入力します。
function checkKeywordInURL(url, keyword) {
if (!url || !keyword) return false;
try {
var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
var content = response.getContentText();
return content.includes(keyword);
} catch (e) {
return false; // URLの取得に失敗した場合もFALSEを返す
}
}
このスクリプトを保存することで、スプシ上で関数「checkKeywordInURL」が使えるようになります。
使い方としては、調べたいURL、調べたいコードをそれぞれスプレッドシートに入力し、新たなセルに
=checkKeywordInURL(調べたいURLのセル,調べたいコードのセル)
と入力するだけです。
左側のURLのソースコードに調べたい文字が含まれているか、簡単に確認できました。
E列は目視で確認した地図の有無(=答え)です。
注意点としては、ソースコードが動的に構築されるサイトでは使用できないこと、調べたい文字に記号が入っていると不安定になりやすいことです。
このような場合、Node.jsなどをインストールした方がいいでしょう。また、スクレイピングを禁止しているサイトもあるので事前に確認してください(最悪の場合ボット攻撃とみなされます)。