0

そこからたくさんのものを解析して読み取るHTMLドキュメントがあります。問題は、html に複数のテーブルが含まれており、1 つのテーブルだけに関心があることです。さらに、有用なコンテンツを含む行だけを読みたいです。これがサンプルの HTML ページです。ID のない 2 つのテーブルがあり、2 番目のテーブルと、人間にとって有用な行のみが必要です。

<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 は、私が望むテキストではありません。両方のテーブルが含まれています。2 番目のテーブルのみが必要です。ヘルプ!

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")
4

1 に答える 1

0

//table[2]/tr/td2 番目のテーブルを取得するためにxpath を試しましたか。HTML のソースを変更できる場合、テーブルに id 属性を提供するのが最善の解決策です。

于 2012-04-14T07:08:39.653 に答える