Можете ли вы опубликовать весь свой код? Я не могу понять, что говорит твоя ошибка, не видя всего этого

, чтобы построить скребок в скриптах Google. Есть 2 класса с одинаковым именем, и я не могу найти способ получить второй класс. Выводит только первый.

function myFunction() {
    var url = "https://www.zchocolat.com/shop/fr/livraison-cadeau-chocolat/espagne";
    var fromText = '<p class="article"';
    var toText = '">';

    var content = UrlFetchApp.fetch(url).getContentText();
    var scraped = Parser
                .data(content)
                .setLog()
                .from(fromText)
                .to(toText)
                .build();
    Logger.log(scraped);
    return scraped;
}

function SAVE_DATA() {
   var sheet = SpreadsheetApp.openById('').getSheetByName('Feuille 1'); 
   sheet.appendRow([ new Date(), myFunction() ]);

}

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

чтобы вам было легче извлечь нужные вам узлы. На этом сайте есть несколько хороших примеров (https://sites.google.com/site/scriptsexamples/learn-by-example/parsing-html)

Вы бы в конечном итоге что-то вроде:

function myFunction() {
    var url = "https://www.zchocolat.com/shop/fr/livraison-cadeau-chocolat/espagne";
    var fromText = '<p class="article"';
    var toText = '">';

    var content = UrlFetchApp.fetch(url).getContentText();

    var doc = XmlService.parse(html);
    var html = doc.getRootElement();
    var articles = getElementsByClassName(html, 'articles');
    Logger.log(articles);
}

function getElementsByClassName(element, classToFind) {  
  var data = [];
  var descendants = element.getDescendants();
  descendants.push(element);  
  for(i in descendants) {
    var elt = descendants[i].asElement();
    if(elt != null) {
      var classes = elt.getAttribute('class');
      if(classes != null) {
        classes = classes.getValue();
        if(classes == classToFind) data.push(elt);
        else {
          classes = classes.split(' ');
          for(j in classes) {
            if(classes[j] == classToFind) {
              data.push(elt);
              break;
            }
          }
        }
      }
    }
  }
  return data;
}
 Elsa13 окт. 2017 г., 02:42
Не могли бы вы понять мой вопрос?
 Elsa01 окт. 2017 г., 08:16
Я заинтересован в вашем методе. У меня есть один вопрос для вашего ответа. Можно тебя спросить?
 Jordan Rhea14 окт. 2017 г., 04:14
Можете ли вы опубликовать весь свой код? Я не могу понять, что говорит твоя ошибка, не видя всего этого
 Jordan Rhea02 окт. 2017 г., 09:38
Конечно. Это метод, который я нашел на сайте, на который я ссылался. Какой у Вас вопрос?
 Elsa02 окт. 2017 г., 10:40
Спасибо за ответ. Я попробовал твой сценарий. Но это не сработало. ОшибкаError: Attribute name "async" associated with an element type "script" must be followed by the ' = ' character. вvar doc = XmlService.parse(content);, Я хотел бы знать, как разобратьvar content = UrlFetchApp.fetch("https://www.zchocolat.com/shop/fr/livraison-cadeau-chocolat/espagne").getContentText(); по XmlService.
Решение Вопроса

Точки модификации:Когда он видитParser библиотеки вы используете вВоткажется, что с помощьюiterate()данные могут быть получены в виде массива.Данные, которые вы хотите, являются вторыми.

Когда они отражены в вашем скрипте, модифицированный скрипт выглядит следующим образом.

Модифицированный скрипт:
function myFunction() {
  var url = "https://www.zchocolat.com/shop/fr/livraison-cadeau-chocolat/espagne";
  var fromText = '<p class="article">';
  var toText = '</p>';
  var content = UrlFetchApp.fetch(url).getContentText();
  var scraped = Parser
              .data(content)
              .from(fromText)
              .to(toText)
              .iterate();
  Logger.log(scraped[1]);
  return scraped;
}
Результат:
97% de nos colis ont &eacute;t&eacute; livr&eacute;s dans les temps en 2016.
                                        zChocolat a d&eacute;j&agrave; livr&eacute; avec succ&egrave;s 21,923 cadeaux chocolat en Espagne.

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