使用Ruby、Nokogiri和Mechanize在数组中查找行数最多的表


@p = mechanize.get(url)
tables = @p.search('table.someclass')

我基本上浏览了大约200页,把表放在一个数组中,唯一的排序方法就是找到行数最多的表。

所以我希望能够查看数组中的每个项目并选择行数最多的第一个项目。

我一直在尝试使用max_by,但这不会起作用,因为我需要搜索表,这是数组项,找到tr.count.

两种方式:

biggest = tables.max_by{ |table| table.css('tr').length }
biggest = tables.max_by{ |table| table.xpath('.//tr').length }

由于您没有给出示例URL,这里有一个类似的搜索,显示可以使用max_by:

require 'mechanize'
mechanize = Mechanize.new
rows = mechanize.get("http://phrogz.net/").search('table#infoporn tbody tr')
# Find the table row from the array that has the longest link URL in it
biggest = rows.max_by{ |tr| tr.at_xpath('.//a/@href').text.length }
p biggest.name, biggest.at('.//a/@href')
#=> "tr"
#=> [#<Nokogiri::XML::Attr:0x1681680 name="href" value="slow-file-reads-on-windows-ruby-1.9">]

相关内容

  • 没有找到相关文章

最新更新