GASのスクレイピングで取得した配列をスプレッドシートに入れたいです。
ヤフオクをスクレイピングして600件のデータ(タイトル、URL、価格など)を取得。
現在
function yahooSearchData() { var ss = SpreadsheetApp.getActiveSheet(); for (var i = 1; i <=501; i+=100){ var newUrls = 'https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&aucminprice=3000&b='+[i]+'&n=100&rewrite_category=0'; var html = UrlFetchApp.fetch(newUrls).getContentText(); var links = Parser.data(html) .from('<a class="Product__imageLink" href="') .to('"') .iterate() var titles = Parser.data(html) .from('<div class="Product__infoCell Product__infoCell--left">') .to("</h3>") .iterate(); titles = タイトル取得 }); var prices = Parser.data(html) .from('<span class="Product__priceValue">') .to("</span>") .iterate(); prices = 価格を取得 }); var end_times = Parser.data(html) .from('<span class="Product__time">') .to("</span>") .iterate(); // こここで複数ある配列をきれいに成形する var values =[ titles, prices, end_times, links ] var _ = Underscore.load(); var dataTrans = _.zip.apply(_, values);
で出力すると
[19-12-24 18:52:59:781 JST] [title, price, end_times, URL]が100件入った配列が計6個=600件あります。
[19-12-24 18:52:59:781 JST] [title, price, end_times, URL]×100件×6個
それを
// この } の外でその値をsetvalueすれば宜しい。 var range = ss.getRange("A2:D601"); dataTrans = dataTrans[0].map(function(_, i) { return values.map(function(f) { return f[i] }) }); // 追加 range.setValues(dataTrans);
とすると
と出てしまいます。
どうやって入れれば良いのでしょうか。。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー