Ruby - nokogiri - 只解析特定的html表

时间:2012-04-14 06:58:22

标签: ruby nokogiri

我有一个HTML文档来解析和阅读那里的一堆东西。问题是html中有多个表,我只对一个表感兴趣。另外,我想只阅读包含一些有用内容的行。这里是示例html页面,有两个表没有ID,我只想要第二个表,只需要对人类有用的行。

<HTML>
<BODY>

<TABLE>
  <TR>
    <TD> I don't want this table </TD></TR>
  <TR>
    <TD></TD>
    <TD> No No No <br></TD>
  </TR>
....
</TABLE>


<TABLE>
  <TR>
    <TD>04/13/2012 22:51  I want this table </TD></TR>
  <TR>
    <TD></TD>
    <TD> First - something there <br></TD>
  </TR>
  <TR>
    <TD>04/13/2012 23:23  Update from xyz</TD></TR>
  <TR>
    <TD></TD>
    <TD>Second - something here <br></TD>
  </TR>
</TABLE>


</BODY>
</HTML>

我正在尝试此代码,这显然无效。 o / p不是我想要的文字。它包括两个表,我只想要第二个表。帮助!

require 'curb'
require 'nokogiri'
c = Curl::Easy.perform("http://server/cgi-bin/page.cgi?id=123456")
html_doc = Nokogiri::HTML(c.body_str.to_s)
puts html_doc.xpath("//table/tr/td")

1 个答案:

答案 0 :(得分:0)

您是否尝试过//table[2]/tr/td的xpath来获取第二个表格。如果您可以更改HTML的来源,最好的解决方案是为您的表提供id属性。