我在循环中添加数组时遇到一些问题。 它只会将最后的结果添加到数组中并丢失之前的9组。
我想我必须在循环内部创建一个新数组,然后将新数组添加到前一个数组中。我只是不确定我是怎么做的。
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
答案 0 :(得分: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