Google Apps Scriptでスクレイピングしてみた
最近、周りにGoogle Apps Scriptを触ってる人が増えてきたので
ちょっと触ってみようと思いました。
作るもの
Spreadsheetで入力されたURLを読みむ。
それぞれのURLのページのタイトルを取得して
URLの列のとなりにタイトルを書き込む。
コード
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var url_column = 1; var column_num = sheet.getLastRow(); function titleGetter(){ var results = new Array(); urls = sheet.getRange(1, url_column, column_num, url_column).getValues(); for(i=0; i < urls.length; i++){ url = urls[i]; title = getTitleFromURL(url); results[i] = [url[0], title]; } setResults(results); } function getTitleFromURL(url) { var response = UrlFetchApp.fetch(url); var myRegexp = /<title>([\s\S]*?)<\/title>/i; var match = myRegexp.exec(response.getContentText()); var title = match[1]; title = title.replace(/(^\s+)|(\s+$)/g, ""); return title; } function setResults(results){ sheet.getRange(1, url_column, column_num, results[0].length).setValues(results); }
感想
Javascriptみたいなもんだよな、という話は聞いてたけど
実際、癖のあるJavascript書いてる感じだったw
スプレッドシートの操作の仕方も非常に簡単で、
VBAとかを触ったことのある人ならすぐに感覚を掴めそう。
何やら調べてると、この上でウェブアプリケーションも作れるようなので、
今度もうちょっと調べてみよ(・ω・´)