Google 工作表上的 ImportXML 出现问题

Trouble with ImportXML on Google Sheets

我已经用大约 500 个 URL 和 Xpath 填充了一个 google spreadsheet。在发现 ImportXML 有一些缺点后(即使只有 10 个左右的函数 运行,它也会出现永久加载错误)。我正在寻找另一种填充 sheet 的方法。我的第一次尝试是一个迭代脚本,它只是将一个 ImportXML 函数写入一个工作单元格,然后写入每个 URL 的值。我认为一次只有一个 ImportXML 运行 可以正常工作,但它仍然会出现永久加载错误。

样本sheet: https://docs.google.com/spreadsheets/d/1QgW4LVkB_oraO9gdS5DsnNta3GVlqsH0_uC1QP0iE7w/edit?usp=sharing

(注意示例 sheet 实际上可以与迭代 ImportXML 脚本一起工作,仍然 returns 一些错误,但我认为历史 ImportXML 函数必须有一些限制,而不仅仅是 sheet 因为我的主要 sheet 现在只处理几个问题)

有没有可以运行的简单脚本?我已经尝试使用 URLFetch、xml.evaluate、xmlService 进行变体,但由于我的知识有限,我无法让它工作。

非常感谢任何指导。 谢谢!

这是一个工作方法 - 我为您测试过:

将此函数添加到您当前在应用程序脚本中拥有的函数之上。

function importprice(url) {
  var found, html, content = '';
  var response = UrlFetchApp.fetch(url);
  if (response) {
    html = response.getContentText();
    if (html) content = html.match(/<span id="product_price" itemprop="price">(.*)<\/span>/gi)[0].match(/<span id="product_price" itemprop="price">(.*)<\/span>/i)[1];
  }
  return content;
}

然后替换当前如下所示的 importxml 函数:

 var cellFunction1 = '=IMPORTXML("' + sheet.getRange(row,4).getValue() + '?' + queryString + '","' + sheet.getRange(row,5).getValue() + '")';

有了这个:

var cellFunction1 = importprice(sheet.getRange(row,4).getValue());