@idx12x4xxx
Начинаю разбираться в JavaScript

Google Таблицы. Как избежать ошибки «Максимальное количество символов в одной ячейке: 50000»?

Пишу парсер контента сайта в скриптах Google таблиц и столкнулся с ошибкой "Максимальное количество символов в одной ячейке:50000" Хотя по факту в одной ячейке на выходе не более 60 символов.

Код:
function getConten(){
    getPageContent('https://xxx.ru/');  
}

function getPageContent(url) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("a1:g181");
  var cell = range.getCell(1,1);
  var cell2 = range.getCell(1,2);
  var cell3 = range.getCell(1,3);
  var cell4 = range.getCell(1,4);
  var cell5 = range.getCell(1,5);
  var cell6 = range.getCell(1,6);
  var cell7 = range.getCell(1,7);
  
  var test;
  
  var response = UrlFetchApp.fetch(url); 
  var textResp  = response.getContentText();
  var start, end, name;
  var i;
  for(i = 0; i < 50; i++){
    
    //Цена со скидкой   
    start = textResp.indexOf('<div class="price price-box" data-sale="sale:true">', end) + 51;
    end = textResp.indexOf('<em', start);
    name = textResp.substring(start, end);
    cell.setValue(name);
    cell = cell.offset(1,0);
    
     
    //Бренд
    start = textResp.indexOf('<h2>', end) + 4;
    end = textResp.indexOf('<span>', start);
    name = textResp.substring(start, end);
    cell2.setValue(name);
    cell2 = cell2.offset(1,0);

    //Название
    start = textResp.indexOf('<span>', end) + 7;
    start = textResp.indexOf('</span>',start) + 15;
    end = textResp.indexOf('</span>', start);
    name = textResp.substring(start, end);
    
    cell3.setValue(name);
    cell3 = cell3.offset(1,0);
    
    test = name.length;
    cell6.setValue(test);
    cell6 = cell6.offset(1,0);
    
    //
    start = textResp.indexOf('<span>', end) + 6;
    end = textResp.indexOf('</span>', start);
    name = textResp.substring(start, end);
    
    cell4.setValue(name);
    cell4 = cell4.offset(1,0);

    
     //Цена без скидки   
    start = textResp.indexOf('<div class="price price-box" data-sale="sale:true">', end) + 51;
     start = textResp.indexOf('<em',start) + 69;
    end = textResp.indexOf('<em', start);
    name = textResp.substring(start, end);    
    cell5.setValue(name);
    cell5 = cell5.offset(1,0);
    
    
  }
}


Заранее огромное спасибо!
  • Вопрос задан
  • 5008 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Вам необходимо следить, чтобы общее количество ячеек было менее 5млн, т.к. это общее ограничение на данные в Таблицах.

  1. Простой способ проверить количество используемых ячеек
  2. Удалить лишнее/пустые. Называется "обрезать таблицу"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
парсер контента сайта в скриптах Google таблиц

Вот это и есть главная ошибка.

Арендуйте себе хостинг за 12 рублей в месяц (php+mysql), и запускайте там скрипты без ограничений. Так вы гораздо больше сэкономите на нервах и времени. А скупой, как известно, платит дважды.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы