IMPORTXML
是谷歌工作表(Google Sheets)中的一个函数,它允许用户通过 XPath 表达式从网页中提取数据。当使用 IMPORTXML
从雅虎财经获取某些股票数据失败时,可能是由于以下几个原因:
IMPORTXML(url, xpath_expression)
,其中 url
是要从中提取数据的网页地址,xpath_expression
是用于定位数据的 XPath 表达式。IMPORTXML
无法执行 JavaScript。假设我们要获取某股票的当前价格,可以使用以下 XPath 表达式:
=IMPORTXML("https://finance.yahoo.com/quote/AAPL", "//span[@data-reactid='32']")
如果上述公式失败,可以尝试以下步骤:
UrlFetchApp
发送带有请求头的 HTTP 请求。function fetchStockPrice(symbol) {
var url = "https://finance.yahoo.com/quote/" + symbol;
var response = UrlFetchApp.fetch(url, {
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
});
var content = response.getContentText();
var price = content.match(/<span data-reactid="32">([\d,\.]+)<\/span>/)[1];
return price;
}
然后在 Google Sheets 中调用此函数:
=fetchStockPrice("AAPL")
通过这种方式,可以绕过一些简单的反爬虫机制,并更灵活地处理网页结构的变化。
通过理解这些基础概念和解决方法,可以更有效地使用 IMPORTXML
或其他工具从网页中提取所需数据。
领取专属 10元无门槛券
手把手带您无忧上云