我确信这是一个完全无知的问题,但在这里。以下代码的目标是从标准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
答案 0 :(得分:2)
没关系,我想通了。
我有一行item = f.gets
,它会在每次循环运行时调用下一行,从而跳过每一行。我知道这是一个菜鸟问题。 :P