【问题标题】:Google Spreadsheet xpath scraping谷歌电子表格 xpath 抓取
【发布时间】:2015-02-27 07:17:38
【问题描述】:

所以我不是专业程序员,但我正试图从路透社主页上抓取数据并将其导入谷歌电子表格。 我知道路透社已经回答了有关抓取的问题,但是这对我没有帮助。

我想要来自这个页面的数据:http://www.reuters.com/finance/stocks/financialHighlights?symbol=9983.T

具体来说,如果您向下滚动,则会有很多关于公司财务的数据,并被打包到表格中。我需要表格中的特定值。

所以很自然地,我的问题是,如何从表格中获取特定值?例如,我想要标有“净利润率 (TTM)”的行中的第一个值。该值应为 7.30。

所以我通过使用 google chrome 开发者工具获得了 xpath,右键单击元素并选择“复制 xpath”。因为我不是程序员,所以我不知道有任何其他方法可以从表中获取特定元素。

我在谷歌电子表格中尝试了以下功能:

=IMPORTXML(URL as written above,"//*[@id='content']/div[2]/div/div[2]/div[1]/div[13]/div[2]/table/tbody/tr[14]/td[2]")

但它会返回

"#N/A - Error, imported content is empty"

我可以做些什么来获得价值?

【问题讨论】:

    标签: xpath google-sheets


    【解决方案1】:

    众所周知,Google 表格的IMPORTXML() 功能存在令人难以置信的错误,如果人们在其中挖掘出真正的错误也就不足为奇了。不过,我们并不确切知道为什么您的原始 XPath 表达式不起作用。

    我想要标有“净利润率 (TTM)”的行中的第一个值。该值应为 7.30。

    您从开发人员工具中获得的路径表达式很大程度上依赖于定位,而不是实际值。 如果您可以依赖此行中第一个单元格的文本内容,请使用

    =IMPORTXML("http://www.reuters.com/finance/stocks/financialHighlights?symbol=9983.T","//tr[contains(td[1],'Net Profit Margin (TTM)')]/td[2]")
    

    意思是

    选择第一个td 子元素的文本内容包含“净利润利润率(TTM)”的所有tr 元素,然后选择该tr 的第二个td

    结果是

    7.3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多