xml - 复制的 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']")
尽管我注意到上面的所有查询也不适用于电子表格。
解决方案
看起来这个网站受到了自动请求的保护,因此它阻止了来自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']")
推荐阅读
- java - Spring Data Rest 中的 NamedEntityGraph 忽略
- html - 如何在右侧制作带有标题的引导轮播?
- jquery - 无法在 jquery 中打印从 Modal 中选择的值
- angular - @viewchild for 指令总是返回元素 ref 而不是指令参考 - angular5
- python - 检索请求对象的源代码
- angular5 - (更改)不适用于角度 5 中的 select2
- php - 我正在尝试使用 laravel 在我的数据库上使用多个过滤器
- blockchain - 如何在 Solidity 中部署后持久化数据
- qt - 在 QML 中有一个凸 MapPolygon
- android - 在 Kotlin 中将目录转换为对象