试图将几条<代码>IMPORTXML的公式移至表面所附的备份文字功能中,以便安排该表每天运行,这样,许多<代码>IMPORTXML的公式不会造成装上hang或当天花很长时间。 我发现,在采用电子表格公式内对“URL”目标进行Xpath问询时,做的是罚款,但在试图通过笔记来使用同一xpath问询时,我会发现错误,而不是确定如何。
这项工作:
=IMPORTXML(CONCATENATE("https://www.marketwatch.com/investing/stock/",A2,"/company-profile"), "/html/body/div[3]/div[6]/div[2]/div[2]/div[1]/table/tbody/tr[6]/td[2]")
......但这不是:
function fetchAndWriteData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("mysheet");
var tickers = sheet.getRange("A2:A").getValues();
var valuesColHeader = "p/cf";
var xpathQuery = "/html/body/div[3]/div[6]/div[2]/div[2]/div[1]/table/tbody/tr[6]/td[2]";
for (var i = 0; i < tickers.length; i++) {
var ticker = tickers[i][0]; // Get the value from column A (1-indexed)
if (ticker) {
// Construct the URL
var url = "https://www.marketwatch.com/investing/stock/"+ticker+"/company-profile";
console.log(url)
// Fetch the HTML content from the URL
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
console.log(content)
// Extract data using XPath
var doc = XmlService.parse(content);
var rootNode = doc.getRootElement();
var elements = XmlService.getNamespace().getChild(rootNode, xpathQuery);
if (elements.length > 0) {
var extractedValue = elements[0].getValue();
// Write the extracted value to the specified column
var headerRow = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var valuesColIndex = headerRow[0].indexOf(valuesColHeader) + 1; // 1-indexed
sheet.getRange(i + 1, valuesColIndex).setValue(extractedValue);
}
}
}
}
浏览错误:
例外:第268行的错误:与“链接”一类的“交叉来源”对应名称必须随附=特性。
......在处决线以下时:var doc = Xmlservice.parse (content);
A类标本:
在此可以做些什么? 我如何确定这一点?
如果有任何工作(如果需要的话)使我能够使用一种价值选择查询/说明,而这种查询/说明可以简单地从浏览器检查员那里复制,因为我还有许多其他带有Xpaths的URL,我正试图去做文字:
是否有这样的文字功能或已经存在的东西?