我一生都无法看到为什么每次循环时都会得到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