xml - IMPORTXML - 导入的内容为空
问题描述
谁能帮助我,我正在尝试将 2020 年 9 月 29 日的总资产数字(8,473,000)从雅虎财经页面提取到 Google 表格中。我尝试了几个公式,但不断收到“导入的内容为空”错误。
我试过以下 -
首先使用 Xpath 和公式:
=IMPORTXML("http://finance.yahoo.com/quote/EZJ.L/balance-sheet", "//*[@id='Col1-3-Financials-Proxy']/section/div[3]/div[1]/div/div[2]/div[1]/div[2]/div[3]/div[1]/div[2]/span")
然后(读到 Xpath 可能会失败,因为它包含对 /section/ 的引用)元素和公式:
=INDEX(IMPORTXML("http://finance.yahoo.com/quote/EZJ.L/balance-sheet","//div[@class='Ta(c) Py(6px) Bxz(bb) BdB Bdc($seperatorColor) Miw(120px) Miw(140px)--pnclg Bgc($lv1BgColor) fi-row:h_Bgc($hoverBgColor) D(tbc)'"),1,1)
感谢任何关于如何拉这个数字的指导!
解决方案
您提供的链接中的数据似乎是动态生成的,因此无法获取IMPORTXML
(对于IMPORTHTML
和类似的功能也是如此)。
如果您真的决定只在工作表中使用基本功能,而不是在应用程序脚本中进行网络抓取,您可以通过找到一个静态呈现数据的替代站点来做到这一点。
我已经为你做了,并为同一家公司找到了这个:
我检查了数据,发现您试图在链接中获取的资产也存在于此处,但以百万计(您的旧链接以千计),因此我们需要将百万乘以 1000 以获得相同的数据你想要在你的链接。
您可以在类似日期的总资产(百万)中找到它:
我使用INDEX
和的组合来获取数据IMPORTHTML
。
由于数据是BOLD
,返回的数据是* 8,473 *
,因此我习惯SUBSTITUTE
将其删除*
然后乘以1000
。
这是公式:
=SUBSTITUTE(INDEX(IMPORTHTML("https://www.hl.co.uk/shares/shares-search-results/e/easyjet-plc-ordinary-27-27p/financial-statements-and-reports","table",0),41,2), "*", "") * 1000
这是输出:
有关该问题的更多详细信息,请参阅此帖子。
推荐阅读
- azure - 将 Blob 的上传大小限制到 Azure Blob 存储
- php - php查询中的多项选择
- c# - XAML:从不同的命名空间将视图绑定到 ViewModel
- eclipse - 为什么 JUnit 会以不同的结果运行两次测试
- node.js - 如何将控制权传递回 Botbuilder NodeJS 中上一个对话框的顶部?
- c# - 为什么使用公共类需要引号为列表框的值成员和显示成员?
- javascript - 事件侦听器无法处理其他输入
- apache-spark - Apache Ranger 无法通过 spark sql 连接到 Hive
- android - Lollipop 和下层设备上的可绘制背景 ResourcesNotFoundException
- spring-boot - @FeignClient 在使用 eureka 服务 id 时总是超时