Ruby - 读取csv文件并在循环中执行值正在跳过csv文件中的行

时间:2011-01-20 16:42:35

标签: ruby csv for-loop

我确信这是一个完全无知的问题,但在这里。以下代码的目标是从标准csv文件中读取id列表,使用该值附加到URL,调用URL并通过xpath提取特定属性。我遇到的问题是循环似乎正在跳过一些行。

例如,以下是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 个答案:

答案 0 :(得分:2)

没关系,我想通了。

我有一行item = f.gets,它会在每次循环运行时调用下一行,从而跳过每一行。我知道这是一个菜鸟问题。 :P

相关问题