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

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

(请注意,示例工作表实际上可以与迭代的ImportXML脚本一起使用,但仍然会返回一些错误,但是我认为历史ImportXML函数不仅在工作表上是当前功能,还必须有一定的限制,因为我的主工作表现在仅能处理一些实际问题)

有没有可以使用的简单脚本?我已经尝试使用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());

关于javascript - Google表格上的ImportXML出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41253339/

10-10 22:00