2011-01-20 85 views
0

我確定這是一個完全無知的問題,但在這裏它就是這樣。以下代碼的目標是從標準csv文件中讀取id列表,使用該值附加到URL,調用URL並通過xpath提取特定屬性。我遇到的問題是循環似乎跳過了一些行。Ruby - 讀取csv文件並在循環中執行值正在跳過csv文件中的行

在例如,這裏是10個值的一個示例:

777961 
777972 
781033 
781044 
781055 
847066 
744187 
893908 
369009 
369010 

該代碼僅讀取每​​隔一行。實際的文件大約有6000行,不是很大,但是我只能得到大約2500個在第二個文件中返回的值。

f = File.open('test.csv', 'r+') 

url_f = File.open("url.csv", "w") 

for line in f 
    f.each_line do |item| 
    item = f.gets 
    url = "http://test.com/testid=" + item 
    client = HTTPClient.new 
    resp = client.get_content(url) 

    doc = Nokogiri::HTML(resp) 
     doc.xpath("//link[@rel='canonical']/@href").each do |attr| 
     url_f.puts attr.value 
     puts attr.value 
     end 
    puts item 
    end 
end 

回答

1

沒關係,我想通了。

我有item = f.gets行,每次循環運行時都會調用下一行,從而跳過每一行。我知道這是一個noob問題。 :P