使用Nokogiri时循环时进行8份TD项目



我一生都无法看到为什么每次循环时都会得到8个特定值(TD [0])。我检查了我在网上看到的东西,但显然我错了。

假设"表"与某些诺科吉里HTML路径有关。我正在尝试获取第一个TD的内容(位置0,因此TD [0])

result = []
table.search('tr').map do |row|
  row.search('td').each do |td|
    result.push(row.search('td')[0].text.to_s)
 end
end
puts result

我只想从每个TR的位置[0]的数据。相反,每个TR的TD [0]副本[0]。我想念一些明显的东西,但是什么?

result = []
table.css('tr').each do |row|
  result << row.css('td')[0].text if row.css('td')[0]
end

问题非常简单,有些行可能根本没有TD。这就是为什么您要在调用#Text之前检查是否有任何TD。

如果您喜欢使用#map:

result = table.css('tr').map do |row| # map returns array of results
  row.css('td')[0].text if row.css('td')[0]
end.compact # compact deletes all the nil elements from array

相关内容

  • 没有找到相关文章

最新更新