かずきち。の日記

サーバサイドエンジニアのつぶやき

スクリプトあり!マイホッテンに入っているブログを完全自動・定期で紹介する!

ホッテンとは?

hatenablog.com
引用:
https://hatenablog.com/

はてなブログには特に優れたブログ記事をトップページで紹介してくれるという機能があります。
ここに紹介されるブログを見ることは社会のトレンドであるし、こんな意見もあるんだと勉強になります。
ただウェブページのネックなところは新聞といったメディアと異なり、数時間前に何が表示されていたかわからないところです。

f:id:kazukichi_0914:20210829140756g:plain
引用:
https://www.asahi.com/articles/photo/AS2021051400134

新聞の切り抜きであれば…
Aさんが読んでいる首都圏版朝日新聞5版
Bさんが読んでいる首都圏版朝日新聞5版

は同じ文面になるはずです。

しかし、インターネット記事はそうは行かないのです。

URLは同じでも表示されているコンテンツが異なるということは大いにある。

一番いい例はAmazonです。
過去に買った商品などによって商品がリコメンドされているはずです。
アクセスしている人によってページに表示される内容は異なります。

なので、私にリコメンドされているはてなのホットエントリーを紹介するプログラムを作ります。

function myFunction() {
 
    var url = "https://hatenablog.com/";
    var html = UrlFetchApp.fetch(url).getContentText();
 
    var parse = Parser.data(html);
 
    var links = parse.from('<a href="').to('"').iterate();
    console.log(links[100]);

    var blog ='';

    for(var i=12;i<=100;i++){
      Logger.log(i);      
      //Logger.log(links[i]);

      if(links[i]!==links[i-1]){
        //Logger.log('前と同じじゃない!');
        //Logger.log(links[i]);
        //Logger.log(links[i].length);
        if(links[i].length<90){
          //Logger.log('よさそう');
          Logger.log(links[i]);
          var blog = blog +'<br>['+ links[i]+':embed:cite]';
        }
        Logger.log(blog);

        date = new Date();
        var mailAddress = "自身のID@blog.hatena.ne.jp";
        var timestamp = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd'+"版発行");

      }    
    }
    MailApp.sendEmail(mailAddress, "[Trend]かずきち。のホットエントリー "+timestamp,'最近読んだブログのうち、良かったブログを紹介していきます<br><br>'+blog);
}

35行のコードで完結します。
このコードを実行しますと…

kazukichi0914.hatenablog.com
引用:
https://kazukichi0914.hatenablog.com/entry/2021/08/29/142013

こんなブログ記事が自動で作成されます。

使用ライブラリは「Parser」です

このプログラムでは.parseを使用して、文字列を分割しています。
機械は頭が悪いので、「今日は晴れです」という文章があった時に

「今日」
「は」
「晴れ」
「です」

と人間のうように賢く文字文末ができないのです。
なので、Parserというライブラリでブログの文字を切っています。

f:id:kazukichi_0914:20210829142524g:plain

2021年現在プロジェクトのバージョンは8まで公開しています。
ちなみにかかるお金は無料ですので、ぜひ使ってみてください。
Googleが標準で提供しているライブラリです。

ついたはてなスター・はてブの数を毎日自動記録します はてなブログの頑張りを記録して、モチベーションに

ぜひ自動化に磨きをかけていきましょう。