こんにちわ、野良エンジニアです。
今回は「他のはてなブログの総記事数」を調べるスクリプトを作成したので、簡単に紹介しておきます。
【コピペ導入】はてなブログ用 過去記事TweetBot【全自動】
2018年3月版 はてなブログpro・独自ドメインに移行した時にやること まとめ
Amazon プライムは絶対入るべき!メリット・特典・会費・退会方法をまとめて簡単に紹介
内村さまぁ~ず 第1〜50回から選ぶオススメ神回10選【Amazonプライムビデオ】
キッチン作業が最高に捗る突っ張りキッチンラック【オススメグッズ・スペース倍増】
前置き
ちょっとした理由で他のはてなブログの記事数を調べたくなりました。
自分のブログの記事数はダッシュボードで簡単に分かりますが、他のブログの記事数を調べる方法を調べても見つかりませんでした。
※こんな方法で調べられるよー、とご存知の方がいれば教えてください。
パッと思いついたのは「月別アーカイブ」を合計する方法ですが、「表示してないブログもある」し「めんどくさい」です。
てなわけで、前に作った「【コピペ導入】はてなブログ用 過去記事TweetBot【全自動】」のコードを流用して、他ブログの記事数を調べるスクリプトを作りました。
【コピペ導入】はてなブログ用 過去記事TweetBot【全自動】
作ったもの
- Google Spread Sheet + Google Apps Script で、他のはてなブログの総記事数を取得するやつ
実際に調べてみた
「【保存版】一度は読んでおくべき有名はてなブログ30選|BIZ KARTE」や「はてなブログ読者数ランキング」から、適当にピックアップして調べてみました。
加えて、個人的にいくつかチョイスしてます。
URL 表記だと分かりづらいので、ブログ名に置き換えるとこんな感じです。4桁オーバーの方がチラホラといて凄い。
ブログ名 | 記事数 | 管理人さん |
---|---|---|
今日はヒトデ祭りだぞ! | 658 | ✩←ヒトデ(id:hitode99)さん |
太陽がまぶしかったから | 1454 | 池田仮名(id:bulldra)さん |
NO TITLE | 264 | シロマ(id:shiromatakumi)さん |
ゆとりずむ | 566 | らくからちゃ(id:lacucaracha)さん |
クレジットカードの読みもの | 2655 | id:cardmicsさん |
ぐるりみち。 | 1227 | けいろー(id:ornith)さん |
警察官クビになってからブログ | 164 | ハルオサン(id:Haruosan)さん |
Yukihy Life | 196 | ゆきひー(id:ftmaccho)さん |
はらぺこグリズリーの料理ブログ | 319 | はらぺこグリズリー(id:kakashibennett)さん |
ココロクエスト~レベルアップ心理学ブログ~ | 362 | ねこひげ先生(id:cat-whisker)さん |
散るろぐ | 1088 | チルド(id:cild)さん |
give IT a try | 711 | 伊藤淳一(id:JunichiIto)さん |
かきのたねとピーナッツ | 112 | かきぴー(id:bbc-21)さん |
力こそパワー | 282 | うぃる(id:hrktksm)さん |
ARuFaの日記 | 3186 | ARuFa(id:Arufa)さん |
Everything you've ever Dreamed | 848 | フミコフミオ(id:Delete_All)さん |
もはや日記とかそういう次元ではない | 74 | 熊谷 真士(id:manato-kumagai)さん |
LITERALLY | 103 | id:tsukuruiroiroさん |
俺の遺言を聴いてほしい | 554 | id:hideyoshi1537さん |
鈴木です。別館 | 1103 | 鈴木こあら(id:suzukidesu23)さん |
スキナモノート | 121 | きなモン(id:tubamenote)さん |
使い方
使いたい人がいるとも思いませんが、簡単に使い方を説明していきます。
空のスプレッドシートを作成する
スプレッドシートにアクセス、ログインします。
空のシートを作成して、名前を適当に入力。
調べたいブログを Spread Sheet に入力
A列にブログのアドレスを入力。
GAS を作成する
「ツール」 → 「 スクリプト エディタ」をクリック。別ウィンドウ(タブ)が開きます。
プロジェクト名、ファイル名を変更する
プロジェクト名、ファイル名を適当に入力。
コードをコピペする
このコードをコピーして、先ほどのファイルに上書き。
// 記事一覧を書き出すシート var TARGET_SHEET = "シート1"; // 記事数のカウント function countBlogPosts() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(TARGET_SHEET); var lastRow = sheet.getLastRow(); // スプレッドシートの更新とタイミングが重なった場合は何も投稿しない if(lastRow == 0) return; // スプレッドシートからデータ取得 var blogUrls = sheet.getRange("A1").offset(0, 0, lastRow).getValues(); for(var i=0; i<blogUrls.length; i++) { scrapingHatenaBlog(blogUrls[i][0], i + 1); } } // スプレッドシートに記事一覧情報 入力 function scrapingHatenaBlog(url, row) { var myActiveSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var myActiveSheet = myActiveSpreadSheet.getSheetByName(TARGET_SHEET); // RSS 取得 var nonce = getNonce(""); if (url.substr(-1) === "/") url = url.substr(0, url.length - 1); var response = UrlFetchApp.fetch(url + "/feed?page=" + nonce); // エントリー情報 抽出 var myRegexp = /<entry>([\s\S]*?)<\/updated>/gi; var match = response.getContentText().match(myRegexp); // 記事数 var post_cnt = 0; // 過去記事を全て処理 while(match != null) { post_cnt += match.length; // 2ページ目以降を処理するために nonce 更新 var matchData = match[match.length - 1]; var published = fetchString(matchData, "<published>", "<\/published>"); nonce = getNonce(published); // 2ページ目以降を取得 response = UrlFetchApp.fetch(url + "/feed?page=" + nonce); match = response.getContentText().match(myRegexp); } // 記事数書き込み myActiveSheet.getRange(row, 2).setValue(post_cnt); } // Nonce 取得 function getNonce(dateString) { var date = new Date(); if(dateString != "") { date = new Date(dateString); } return Math.floor((date.getTime()/1000)).toString(); } // 文字列抽出 function fetchString(str, pre, suf) { var reg = new RegExp(pre + '.*?' + suf); var data = str.match(reg)[0] .replace(pre, '') .replace(suf, ''); return data; }
実行:ブログの記事数を取得する
「関数を選択」→「countBlogPosts」→「再生マーク」で実行。
Google の認証が必要(needs your permission to access your data on Google)と表示されたら「許可を確認」をクリック。この表示が出ない場合もあるので、その場合は先に進んでください。
スプレッドシートを作成した Google アカウントを選択(or ログイン)
「このアプリは確認されていません」と表示されたら、「詳細」→「"アプリ名"(安全ではないページ)に移動」をクリック。
Google のアクセス許可(アプリ連携)画面が表示されたら、「許可」をクリック。
あとは放置しておけば実行完了するはずです。たまにエラーになるので、その場合はまた実行してみてください。
まとめ
Google Apps Script ではてなブログの記事数を取得するやつ作ったよ
3桁後半や4桁台の人もいて驚愕したよ
継続は力なりグワね〜
誰かブックマークレット化して欲しいグワ〜
【コピペ導入】はてなブログ用 過去記事TweetBot【全自動】
2018年3月版 はてなブログpro・独自ドメインに移行した時にやること まとめ
Amazon プライムは絶対入るべき!メリット・特典・会費・退会方法をまとめて簡単に紹介
内村さまぁ~ず 第1〜50回から選ぶオススメ神回10選【Amazonプライムビデオ】
キッチン作業が最高に捗る突っ張りキッチンラック【オススメグッズ・スペース倍増】