如何使用Nokogiri解析特定的表?

时间:2016-02-13 19:31:35

标签: html ruby nokogiri

我正在尝试在此页面的“控股”标签​​中提取“名称”,“重量”和“持有的份额”表格:https://www.spdrs.com/product/fund.seam?ticker=DIA

# get table headers
headers = []
page.xpath('//*/table/thead/tr/th').each do |th|
  headers << th.text
end

# get table rows
rows = []
page.xpath('//*/table/tbody/tr').each_with_index do |row, i|
  rows[i] = {}
  row.xpath('td').each_with_index do |td, j|
    rows[i][headers[j]] = td.text
  end
end
puts page.xpath("//table//tr//td[1]/text()")
p rows

这是我现在的代码,我不完全确定如何使用xpath。 puts page.xpath("//table//tr//td[1]/text()")调用返回所有表的所有标签,但我只想要具有公司名称的标签。我如何只选择特定表的信息,以及如何重写循环以从中获取信息?

1 个答案:

答案 0 :(得分:0)

使用css选择器的另一种方法

rows = doc.css("div#FUND_TOP_HOLDINGS td").map(&:text).each_slice(3).to_a