【问题标题】:Google Sheet importxml tr td谷歌表 importxml tr td
【发布时间】:2021-05-30 13:22:14
【问题描述】:

https://www.klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad

上面是我正在使用的网站,希望导入行P/E,只想导入值(6)。我写的代码是 =IMPORTXML("https://www.klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad", "//td[contains(@class,'number')] ") 它将整个值拉到右侧,但是我只想选择我正在努力这样做的 P/E 数字。如何编辑代码只选择市盈率?

【问题讨论】:

    标签: xml google-sheets xpath


    【解决方案1】:

    这最终取决于您愿意在 XPath 表达式中嵌入多少关于文档结构和文字的详细信息。例如,这会检索到您的市盈率 6:

    =IMPORTXML("https://www.klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad", "//table[contains(@class,'stock_details')]//td[@title='Price to Earning Ratio']/following-sibling::td[1]/text()")
    

    使用 XPath 表达式首先选择包含“stock_details”类的表,然后在表中选择 title="Price to Earning Ratio" 的 td,然后选择紧接下一个的文本(第一个以下) td 元素。

    或者您可以像最初尝试的那样使用 class 识别以下 td(使用 6):

    =IMPORTXML("https://www.klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad", "//table[contains(@class,'stock_details')]//td[@title='Price to Earning Ratio']/following-sibling::td[@class='number']/text()")
    

    以及其他类似方法,具体取决于您对哪种文字/结构假设感到满意。

    【讨论】:

    • 感谢您逐步解释如何提取想要的值。我尝试了您附加的两个代码,第一个工作正常,第二个我认为应该是(我按照您在第一个替代方案中显示的类提取方法进行编辑): =IMPORTXML("klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad" , "//table[contains(@class,'stock_details')]//td[@title='市盈率']/following-sibling::td[contains(@class,'number')]/text ()")
    • 如果类属性只有一个值,@class='number' 应该可以正常工作。包含也很好,也许更灵活。如果您在使用第二个示例时遇到问题,可能是因为我不小心在“数字”周围留下了双引号,而不是单引号。我现在改正那个错字。谢谢。
    • 是的,改成单引号后效果很好。现在我对类属性有了更多的了解。再次感谢^^
    【解决方案2】:

    另一种使用indexxml路径提取值的方法

    =index(IMPORTXML("https://www.klsescreener.com/v2/stocks/view/5232/leon-fuat-berhad", "//div[@class ='table-responsive']//table[1]/tbody/tr[9]/td[2]"),1)
    

    【讨论】:

    • 感谢您说明如何提取所需值的另一种替代方法,这是一个可悲的情况,我无法将两个回复打勾作为答案。
    • 没关系,我一直想刷新如何使用importXML提取数据:)
    猜你喜欢
    • 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
    相关资源
    最近更新 更多