@ Рубен Спасибо за редактирование.

ел бы получить данные с этого сайта:https://finviz.com/screener.ashx?v=141&f=sh_avgvol_o500,sh_curvol_o2000,sh_price_u50&o=-volume

Я хочу очистить весь стол. Я пытался использовать это:

function myFunction(start) {
    var url = "https://finviz.com/screener.ashx?
v=141&f=sh_avgvol_o500,sh_curvol_o2000,sh_price_u50&o=-volume&r="+ 
start;
    var fromText = '<tbody>';
    var toText = '</tbody>';
    var content = UrlFetchApp.fetch(url).getContentText();
    var scraped = Parser
              .data(content)
              .from(fromText)
              .to(toText)
              .iterate();
}

Я мог очистить каждый элемент с помощью xpath, но я думаю, что это будет довольно медленно.

Вот HTML и таблица:

Могу ли я получить всю таблицу? Спасибо

 Rubén28 окт. 2018 г., 01:28
Parser не является встроенным классом скриптов Google Apps. Используете ли вы библиотеку, упомянутую напринятый ответ?

Ответы на вопрос(1)

Решение Вопроса

ектронную таблицу.

НОТА:Parser это библиотека ГАЗА. Вы можете увидеть детали наhttps://www.kutil.org/2016/01/easy-data-scrapping-with-google-apps.html

Модифицированный скрипт:
function myFunction(start) {
  var url = "https://finviz.com/screener.ashx?v=141&f=sh_avgvol_o500,sh_curvol_o2000,sh_price_u50&o=-volume&r="+ start;
  var content = UrlFetchApp.fetch(url).getContentText();
  var scraped = Parser.data(content).from('class=\"screener-body-table-nw\"').to('</td>').iterate();
  var res = [];

  // If you don't want column titles, please remove this part.
  var temp = [];
  var titles = Parser.data(content).from("style=\"cursor:pointer;\">").to("</td>").iterate();
  titles.forEach(function(e){
    if (!~e.indexOf('\">')) {
      temp.push(e);
    } else if (~e.indexOf('img')) {
      temp.push(e.replace(/<img.+>/g, ''));
    }
  });
  res.push(temp);
  // -----

  var temp = [];
  var oticker = "";
  scraped.forEach(function(e){
    var ticker = Parser.data(e).from("<a href=\"quote.ashx?t=").to("&").build();
    var data1 = Parser.data(e).from("screener-link\">").to("</a>").build();
    var data2 = Parser.data(data1).from(">").to("<").build();
    if (oticker == "") oticker = ticker;
    if (ticker != oticker) {
      temp.splice(1, 0, oticker);
      res.push(temp);
      temp = [];
      oticker = ticker;
      temp.push(data1);
    } else {
      if (!~(data2 || data1).indexOf('<')) temp.push(data2 || data1);
    }
  });
  var ss = SpreadsheetApp.getActiveSheet();
  ss.getRange(ss.getLastRow() + 1, 1, res.length, res[0].length).setValues(res);
}
Результат:

 Tanaike14 июн. 2018 г., 10:59
@Md. Хайрул Ислам Прости. В своем ответе я забыл объяснить про «Парсер». Это библиотека ГАЗА. Вы можете увидеть детали здесь.kutil.org/2016/01/easy-data-scrapping-with-google-apps.html
 Md. Khairul Islam14 июн. 2018 г., 10:49
@Tanaike получаю эту ошибку. ReferenceError: «Parser» не определен. (строка 4, файл «Код»)
 Tanaike28 окт. 2018 г., 01:41
@ Рубен Спасибо за редактирование.
 VincFort26 сент. 2017 г., 23:36
большое спасибо ! Я не понимаю, почему он получает только первые 19 результатов, когда на странице 20.
 Tanaike27 сент. 2017 г., 00:04
@VincFort Добро пожаловать. И тебе спасибо. Да. Хотя это может быть спецификацией для сайта, я этого не знаю. Мне жаль.

Ваш ответ на вопрос