2012-11-13 90 views
0

它可能只是一個我還沒有發現的代碼中的一個白癡錯誤,但它一直花費我相當多的時間:當使用nokogiri和xpath解析網站,並嘗試保存xpaths到.csv文件,csv文件具有空單元格。Xpath內容沒有保存

基本上,xpath的內容返回空或我的代碼沒有正確讀取網站。

這是我在做什麼:

require 'open-uri' 
require 'nokogiri' 
require 'csv' 

CSV.open("neverend.csv", "w") do |csv| 
csv << ["kuk","date","name"] 

#first, open the urls from a document. The urls are correct. 
File.foreach("neverendurls.txt") do |line|  

#second, the loop for each url 
searchablefile = Nokogiri::HTML(open(line)) 

#third, the xpaths. These work when I try them on the website. 
kuk = searchablefile.at_xpath("(//tbody/tr/td[contains(@style,'60px')])[1]") 
date = searchablefile.at_xpath("(//tbody/tr/td[contains(@style,'60px')])[1]/following-sibling::*[1]") 
name = searchablefile.at_xpath("(//tbody/tr/td[contains(@style, '60px')])[1]/following-sibling::*[2]") 

#fourth, saving the xpaths 
csv << [kuk,date,name] 

end 
end 

我缺少什麼嗎?

+0

我想我找到了答案。(1)不要相信在瀏覽器中的XPath檢查。 (2)注意,不要使用它! – Seeb

回答

1

這是不可能從你貼什麼可講,但讓我們清理那個炎熱的亂用CSS:

kuk = searchablefile.at 'td[style*=60px]' 
date = searchablefile.at 'td[style*=60px] + *' 
name = searchablefile.at 'td[style*=60px] + * + *' 
+0

華麗,仍然在乾淨的編碼技巧:) – Seeb