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());
我已经用大约 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());