かずきち。の日記

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

その日の社会のトレンドを自動記録!特定のキーワードに関するネット記事をすべて全自動で抽出してGoogleカレンダーに記載しよう!

ネットメディアの記事ならわざわざ切り抜いたりする必要はない

f:id:kazukichi_0914:20210511195647g:plain

気になった新聞記事は切り取って保存しておくなんてことが昔はありました。
しかし時代は変わりクラウドで情報はいつでもどこでも保存できるようになりました。

f:id:kazukichi_0914:20210511151009g:plain
引用:
https://www.watch.impress.co.jp/docs/news/1157996.html

6TBのハードディスクが9,978円で購入ができるのです。
ノート1冊100円として、100冊以上の情報をストレージにデジタルなら保存ができます。

専門用語で情報爆発

情報爆発(じょうほうばくはつ、英:Information explosion)は、急速に増加する出版化された情報や、その豊富なデータの影響を表現した言葉である。利用可能なデータの量が増大するにつれて、情報を管理する事はより一層難しくなる問題があり、情報オーバーロードもしくは情報疲労に導くことがある。しかし、過剰な電子情報の知識を集めるテクニック(データ融合がデータマイニングを助ける例など)は1970年代から存在していた。

引用:
https://ja.wikipedia.org/wiki/%E6%83%85%E5%A0%B1%E7%88%86%E7%99%BA

要は情報を紙に記載したりする必要はないのです。
昔だったら

f:id:kazukichi_0914:20210511124137g:plain
引用:
https://www.yodobashi.com/product/100000001001712398/?gad1=&gad2=g&gad3=&gad4=452567830515&gad5=17729931895032331779&gad6=&gclid=Cj0KCQjws-OEBhCkARIsAPhOkIZc_QZY5HW8nERtZJA9WURkRuxqaAUo1SSapv1UqEKl54XljNzNxjAaAjIjEALw_wcB&xfr=pla

血圧計などで測って紙に記載なんてことをしていました。
しかし今はどうでしょう?

www.itmedia.co.jp
引用:
https://www.itmedia.co.jp/news/articles/2105/10/news063.html

AppleWatch一つあれば、血圧、血糖値、アルコール検知などが自動で行われる時代になりました。
もはや人手で記録する必要なんかありません。

今回Googleに関するネット記事を全て毎日自動で記録するスクリプトを書いてみた!

プログラミングがひとつできれば、1人の人間でも10,000人分、もっとそれ以上の仕事をしてくれます。
人間は朝起きて、会社に行って、会社で働くことしかないですが、
プログラムなら夜中も自動で働いてくれます。
そして今回は日本の検索上位トレンドの言葉をすべてGoogleカレンダーに記録するスクリプトを書いてみました。


気になるのはコード
function getgoogletrend() {

  // url設定

  var url = 'https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=JP';

  // namespace設定

  var namespace = XmlService.getNamespace("ht",'https://trends.google.co.jp/trends/trendingsearches/daily');

  // rss取得

  var xml = UrlFetchApp.fetch(url).getContentText();
  var document = XmlService.parse(xml);
  var root = document.getRootElement();
  var channel = root.getChild("channel");
  var items = channel.getChildren("item");

  // sheetに記入

  var sheet = SpreadsheetApp.getActiveSheet();
  var length = items.length;
  var today = new Date();
  var Month = today.getMonth() + 1;

  for(var i = 0; i < length; i++) {

    //var lastRow = sheet.getLastRow();  
    var title = items[i].getChildText("title");
    var traffic = items[i].getChildText("approx_traffic",namespace);

    // 1記事のみ取得なのでgetChild

    var news_title = items[i].getChild("news_item",namespace).getChildText("news_item_title",namespace);
    var news_link = items[i].getChild("news_item",namespace).getChildText("news_item_url",namespace);
    
    Logger.log(title);

    //sheet.getRange(lastRow+1, 1).setValue(today.getFullYear() + "/" +  Month + "/"+ today.getDate()+ "/" + today.getHours() + ":00");
    //sheet.getRange(lastRow+1, 2).setValue(title);
    //sheet.getRange(lastRow+1, 3).setValue(traffic);
    //sheet.getRange(lastRow+1, 4).setValue(news_title);
    //sheet.getRange(lastRow+1, 5).setValue(news_link);
        
    //登録するカレンダーIDを呼び出してeventへ格納
    var calendar = CalendarApp.getCalendarById('o3f8vq6mts6bhi4qgjh56qo0qo@group.calendar.google.com');
    
    //イベントのタイトルをtitleへ格納
    Logger.log(title);

    //イベントの開始日をstartへ格納
    var start = new Date('2021/04/30');
    Logger.log(start);

    //イベントの終了日をendへ格納
    var end = new Date('2021/05/01');
    Logger.log(end);
    
    var date = new Date();
    // 今日の日付を表示
    Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd'));
    Logger.log(date);

    var encodedtitle = encodeURIComponent(title); 
    var url = "https://www.google.co.jp/search?q="+encodedtitle+"&geo=JP";
    Logger.log(url);
    
    var option={
      description:url
    };
      
    //createAllDayEventでカレンダーへイベントを登録
    calendar.createAllDayEvent(title,date,option);
    
  }
}

で完成です。
このスクリプトを自動で走らせてあとはその日の社会の情勢を振り返られるわけです。
興味ある人はカレンダー右下の「+」ボタンから登録してみてください。

ネット記事のバックナンバーを自動記録します 新聞の切り抜きのように毎日のニュースをインターネットから収集

別途オリジナルコードも書かせてもらいます。
カスタマイズ相談にも乗ります。