Я уверен, что это совершенно неосведомленный вопрос, но здесь он идет. Целью следующего кода является чтение списка идентификаторов из стандартного файла CSV, использование этого значения для добавления к 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