元職業エンジニアの生き方

これまでとこれからを考えるための備忘録

Google Spread Shees(GAS)でアメブロの記事一覧を取得

GASで個人の方のアメブロ記事一覧を取得してみました。

 

ページをベタ打ちしているので、下記のロジックだと最新1ページのみの取得ができます。

 

これでタイトルを取得できます。

結果としては、スプレッドシート上に書かれる仕様にしています。

 

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(シート名);

 

var blog1 = 'https://ameblo.jp/アメブロID/entrylist';
var fin = '.html';
var regexp1 = /<h1>([\s\S]*?)<\/h1>/gi;

 

function myFunction() {

 var response = UrlFetchApp.fetch(blog1 + fin);
 var result = [];
 for (var i in elements1) {
  var doc = XmlService.parse(elements1[i]);
  var root = doc.getRootElement();
  result.push({
   title: root.getValue().replace('\n', ''),
  })
 }
 var wrt = 2;
 for (var j in result) {
  sheet.getRange(wrt, 1).setValue(wrt-1);
  sheet.getRange(wrt, 2).setValue(result[j]['title']);
  wrt++;
 }
}

 

プログラム的な話をすると、

HTML文をパースした後に正規表現で必要な箇所を取り出して、書き込む仕様です。

 

ページがたくさんある場合は、URL部分を動的にしたりで解決できるかと。

作成日、いいね、コメント数、リブログ数なども取れそう。