2011-01-20 19 views
0

これは完全に無知な質問ですが、ここには入ります。次のコードの目的は、標準csvファイルからIDのリストを読み込み、値を使用してURLに追加し、URLを呼び出してxpath経由で特定の属性を抽出することです。私が抱えている問題は、ループがいくつかの行をスキップしているようです。Ruby - csvファイルを読み込んでループ内の値を実行すると、CSVファイル内の行がスキップされる

777961 
777972 
781033 
781044 
781055 
847066 
744187 
893908 
369009 
369010 

コードのみを他のすべての行を読んでいる:

は、例えば、ここでは10の値のサンプルです。実際のファイルは約6000行で、巨大ではありませんが、2番目のファイルには約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ラインを持っていたので、他のすべてのラインをスキップします。私はそれがノブの質問であることを知っていた。 :P

関連する問題