我正在尝试在此页面的“控股”标签中提取“名称”,“重量”和“持有的份额”表格: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()")
调用返回所有表的所有标签,但我只想要具有公司名称的标签。我如何只选择特定表的信息,以及如何重写循环以从中获取信息?
答案 0 :(得分:0)
使用css选择器的另一种方法
rows = doc.css("div#FUND_TOP_HOLDINGS td").map(&:text).each_slice(3).to_a