2016-02-13 43 views
-1

我試圖拉名稱,重量,並舉行表中該頁面的控股股份標籤:https://www.spdrs.com/product/fund.seam?ticker=DIA如何使用Nokogiri解析特定表格?

# 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

歡迎堆棧溢出。請閱讀「[mcve]」。您需要提供演示問題的_minimal_輸入。這意味着,您正在使用的HTML需要減少到最低限度,然後添加到問題中。不要期望我們編寫檢索那個頁面的代碼,或者我們會減少它來幫助你。你必須幫助我們幫助你。 –

回答

0

另一種方式來做到這一點使用CSS選擇

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