2016-07-14 296 views
0

如何通过Google表格从本网站检索EPS股票信息? http://seekingalpha.com/symbol/KOimportXML xPath:将股票信息从网站提取到Google表格

我想在谷歌张出这是什么值:

1.66 

在现场我相信相关的XML代码,以将这些信息从是这样的:

<span class="right" id="qp_eps">1.66</span> 

此Google表格公式不会返回任何错误:

=ImportXML("http://seekingalpha.com/symbol/KO/focus", "//span[@id='qp_eps'") 
+1

应该不是你的XPath看起来像:'//跨度[@ ID = 'qp_eps'] /文()'还什么,如果有成千上万的'使用attr span'元素ibutes'id =“qp_eps”' – SomeDude

+0

我之前没有和xPath联系过,基本上不知道它。我试过了你的建议,但是这也没有检索任何东西,不幸的是 – stefan

+0

你知道,如果在该链接中只有一个带有id ='qp_eps'的跨度? – SomeDude

回答

0

您在浏览器开发人员工具中看到的HTML/DOM不是从Web服务器接收的原始HTML;它已经通过在浏览器中运行的Javascript动态地增加了。

您可以在浏览器中进行导入网址(http://seekingalpha.com/symbol/KO/focus)并执行“保存”(仅限HTML),以检查此选项。然后检查保存的文件。它不包含id="qp_eps"的任何元素,是吗?

如果您有curlwget,则可以使用它们来从Web服务器获取原始HTML并验证它包含的内容。这是ImportXML()看到的HTML,所以你必须记住你的XPath。

1

我有一种变通方法给你:

使用IMPORTDATA而不是IMPORTXML,您可以使用索引很奇怪,即使有不同的行情,是相当一致:

有两种方法去了解它 - 首先是两次利用指数:

=INDEX(SORT(INDEX(IMPORTDATA("http://seekingalpha.com/symbol/KO"),,55)),3) 

如果你想清理,只返回您可以替换值“每股收益”部分:

=SUBSTITUTE(INDEX(SORT(INDEX(IMPORTDATA("http://seekingalpha.com/symbol/KO"),,55)),3),"eps:","") 

二是再次而是索引的使用索引的两倍,你可以加入的价值观和正则表达式了你想要的东西:

=REGEXEXTRACT(CONCATENATE(SORT(INDEX(IMPORTDATA("http://seekingalpha.com/symbol/AAPL"),,55))),"eps:(.*)NOW_P") 

下面是两种类型的两个截图:

enter image description here

enter image description here

+0

好棒的东西,它适合你:)。我遇到了一个问题,因为我只使用SUBSTITUTE公式接收“NOW_P:-0.01”,使用REGEXTRACT公式获得“#N/A”。我认为它可能与格式有关?除此之外,我想知道“55”和“3”是什么意思,因为我想检索更多信息,例如来自该网站的“P/E”使用相同的原则。但是,现在我陷入困境,但我想这只能是一个小问题。非常感谢!!!! – stefan

+0

哦是啊55是一个索引,所以如果你使用importdata本身你会看到很多似乎是非结构化数据,但我没有把它全部混合到一个单元格的原因是它超过了字符限制 - 所以对于例如,如果您将公式减少到'= SORT(INDEX(IMPORTDATA(“http://seekingalpha.com/symbol/KO”),55))'您将看到列的值与我​​认为的值想要 –

+0

3然后只是进一步缩小它 - 如果你有一张表,你正在工作我可以跳进来一秒钟,并告诉你 –