【发布时间】:2020-01-24 19:31:45
【问题描述】:
我使用 Google 表格并执行 importXML 从 Zillow 获取房屋价格。该单元格具有以下公式:
=VALUE(IMPORTXML(FirstQuotedTextStringInFormula("F4"),"//div[contains(@class, 'zestimate primary-quote')]/div/text()[3]"))
您可以看到 FirstQuotedStringInFormula 允许我将 URL 保存在不同的单元格中。
我使用一个应用脚本来捕获这些数据,以便对价格进行历史跟踪。
function recordHistory() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("History");
var source = sheet.getRange("B2:AC2");
var values = source.getValues();
sheet.insertRowBefore(3);
sheet.getRange(3, 2, 1, 28).setValues([values[0]]);
};
这适用于我提取的所有值。唯一不起作用的是那些从具有 IMPORTXML 公式的单元格中提取值的值。当我尝试将该数据拉入历史记录表时,指向它的链接“=Assets!B6”工作正常。该值按预期显示。但是当我运行上面的脚本时,该值在下一行显示为“#VALUE!”只是在单元格中显示为标准文本。知道这是哪里出了问题吗?
编辑: 我尝试在示例电子表格中复制该问题,但无法使用通用链接弹出该问题(以避免使用个人数据)。
在工作表中,我将 Sheet2!B2 设置为:
=VALUE(IMPORTXML("https://homedepot.com/p/206651614", "//span[@id='ajaxPrice']/@content"))
这工作正常。如果您查看“历史记录”选项卡,我可以使用新菜单(“管理”)对值进行快照,并将第 2 行中的值放在第 3 行中。它工作正常。如果我将上述内容替换为:
=VALUE(IMPORTXML(FirstQuotedTextStringInFormula("F4"),"//div[contains(@class, 'zestimate primary-quote')]/div/text()[3]"))
然后当我去快照历史选项卡中的值时,它会输入#VALUE!而是在牢房里。我也尝试用实际的 URL 替换我的“FirstQuotedTextStringInFormula("F4"),它仍然做同样的事情。这两个之间有什么不同可能导致这个问题?
【问题讨论】:
-
您能否提供一个示例电子表格来复制您的问题?当然,请删除您的个人信息。
标签: google-sheets google-sheets-formula google-sheets-api google-sheets-importxml