首页 > 解决方案 > 复制的 XPath 返回空结果?

问题描述

使用此网页进行测试,并将此Bloomberg 页面用作 XML 字符串的来源,我想获得大量的 NAV 值。如果我使用 Google Chrome 检查元素并右键单击以复制 XPath,我会得到:

//*[@id="root"]/div/div/section[2]/div[1]/div[2]/section[1]/section/section[2]/section/div[1]/span[1]

如果我复制完整的 XPath,那么我会得到:

/html/body/div[6]/div/div/section[2]/div[1]/div[2]/section[1]/section/section[2]/section/div[1]/span[1]

如果这样的工作会更好:

//span[@class="priceText__1853e8a5"]

但是所有这些表达式,尽管被工具标记为有效,但在测试工具和我的谷歌电子表格中也给出了一个空结果,我在其中使用:

=importxml("https://www.bloomberg.com/quote/ZARATHU:BZ";"//span[@class='priceText__1853e8a5']")

尽管我注意到上面的所有查询也不适用于电子表格。

标签: xmlxpathgoogle-sheets

解决方案


看起来这个网站受到了自动请求的保护,因此它阻止了来自IMPORTXML. 您可以检查是否尝试检索完整的 HTML:

=importxml("https://www.bloomberg.com/quote/ZARATHU:BZ","html")

返回的 HTML 内容包括以下内容:

我们从您的计算机网络中检测到异常活动
要继续,请单击下面的框,让我们知道您不是机器人。

有关的:

编辑:

OP 通过使用这个网络抓取插件解决了这个问题:

=IMPORTFROMWEB("https://www.bloomberg.com/quote/ZARATHU:BZ";"//span[@class='priceText__1853e8a5']")

推荐阅读