2013-08-29 40 views
0

我在循環中向數組添加了一些問題。 它只將最後的結果添加到數組,並丟失前面的9組。使用Ruby從循環內添加到數組中

我想我必須在循環內創建一個新數組,然後將新數組添加到前一個數組中。我只是不確定我如何去做這件事。

array = Array.new 

10.times do 
    array2 = Array.new 
    pagenum = 0 
    results = Nokogiri::HTML(open("#{url}#{pagenum}")) 
    results.css("div").each do |div| 
    array.push div.inner_text 
    end 
    pagenum + 10 
    array.concat(array2) 
end 

回答

2

您正在提取相同頁面(0)10次。

10.times do 
    ... 
    pagenum = 0 # <-------- 
    results = Nokogiri::HTML(open("#{url}#{pagenum}")) 
    ... 
end 

嘗試以下操作:

array = Array.new 
10.times do |pagenum| 
    results = Nokogiri::HTML(open("#{url}#{pagenum}")) 
    array += results.css("div").map(&:inner_text) 
end 
+0

在循環的底部我每次加10頁號? –

+0

@ MaxRose-Collins,'pagenum + 10'不會改變'pagenum'的值。也許這是'pagenum + = 10'的錯字。即使這個錯字是固定的,'pagenum'被'pagenum = 0'重置爲0。 – falsetru

+0

啊是的!好吧,我的角色愚蠢的錯誤。 –