Google Apps Script(GAS)スクレイピングのブログ

Google Apps Script(GAS)スクレイピングのブログ、クローラー、クロール、VBA、RPA、AI、機械学習、ディープラーニング、人工知能、自動化、業務効率化

1ページから複数の値を取得

今回は、1ページから複数の値をWebスクレイピングしたいと思います。

はてなブログのトップページには、複数の記事が並んでいます。そこで、複数あるブログ名を取得したいと思います。

f:id:koyai:20190129151548p:plain

htmlソースを覗く

chromeの場合、右クリックでページのソースを表示することができます。

f:id:koyai:20190129153445p:plain

htmlソースの中身をみると、はてなブログは、

<div class="serviceTop-blog-title">

のタグの後に記事のタイトルが来ていることが分かります。

ブラウザで検索をかけると30個存在するようです。

f:id:koyai:20190129165654p:plain

これをキーにしてスクラッチします。

function myFunction() {

   //urlを指定
   var url = 'https://hatenablog.com/';
   
   //htmlソースを取得
   var response = UrlFetchApp.fetch(url).getContentText();
   
   //取得するタブを指定
   var titleRegexp = /<div class=\"serviceTop-entry-title\">([\s\S]*?)<\/a/gm;
   
   //配列で複数のブログタイトルを取得
   var title = response.match(titleRegexp);
   
   //不要な部分を整形
   for(var i=0; i < title.length; i++){
     
     //切り取る位置を指定
     var from = title[i].lastIndexOf('>');
     var to = title[i].lastIndexOf('<');
     
     //対象部分を取得
     title[i] = title[i].substr(from +1,to -from -1);
   }
   
   Logger.log(title);
  
}

30個あるタイトルが配列で取得できています!

f:id:koyai:20190129172049p:plain