前提・実現したいこと
GASでスクレイピングに取り組んでいます。
発生している問題・エラーメッセージ
下記コードでは「書き込む行は最終行の次の行から」となっていますが、最終列を取得し、最終列の次の列にデータを追加していきたいです。
getLastColumn();などを使えば良いとはわかるのですが、上手くできません、お知恵を貸していただきたいです。
該当のソースコード
JavaScript
1ソースコード 2``````ここに言語を入力 3ここに言語を入力
function get_title_link() {
// 対象ページのURL
var getUrl = 'https://news.yahoo.co.jp/';
// htmlをテキスト情報にして抽出
var html = UrlFetchApp.fetch(getUrl).getContentText('UTF-8');
// ニュースのタイトルを抽出
var title_list = Parser.data(html).from('<div class="newsFeed_item_title">').to('</div>').iterate();
// ニュースの公開された時間を抽出
var time_list = Parser.data(html).from('<time class="newsFeed_item_date">').to('</time>').iterate();
// 記事へのリンクを抽出
var url_list = Parser.data(html).from('<a class="newsFeed_item_link" href="').to('" data-ylk="').iterate();
// シートの指定.GoogleスプレッドシートのURLの「https://docs.google.com/spreadsheets/d/***************************************/edit#gid=0」の部分を使う.
var spreadsheet = SpreadsheetApp.openById('1GnjV-4Gkl-w7w1Rkfb6dZrdMkmcpkrbpC_yj6ooopm8');
// シート1をスポーツに命名(スポーツニュースのみに絞ってスクレイピング)
var sheet = spreadsheet.getSheetByName('シート1');
// 最終行を取得
var lastrow = sheet.getLastRow();
// 書き込む行は最終行の次の行から
var recordrow = lastrow + 1;
// 過去の記録を確認
var oldurl_list = [];
var start = 2;
if (lastrow > 26){
start = lastrow - 25;
}
for(var i = start; i <= lastrow; i++){
oldurl_list.push(sheet.getRange("C" + i).getValue());
}
for(var i = url_list.length-1; i >= 0; i--){
if(oldurl_list.indexOf(url_list[i]) == -1){
sheet.getRange("A" + recordrow).setValue(time_list[i]);
sheet.getRange("B" + recordrow).setValue(title_list[i]);
sheet.getRange("C" + recordrow).setValue(url_list[i]);
recordrow++;
}
}
}
![画像で言うと次に実行した時にはE列に出力できるようにしたいと言うことです](b2a34c021b7721d7807996880d8906d4.png)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。