1ページから複数の値を取得
今回は、1ページから複数の値をWebスクレイピングしたいと思います。
はてなブログのトップページには、複数の記事が並んでいます。そこで、複数あるブログ名を取得したいと思います。
htmlソースを覗く
chromeの場合、右クリックでページのソースを表示することができます。
htmlソースの中身をみると、はてなブログは、
<div class="serviceTop-blog-title">
のタグの後に記事のタイトルが来ていることが分かります。
ブラウザで検索をかけると30個存在するようです。
これをキーにしてスクラッチします。
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個あるタイトルが配列で取得できています!