0

我在从循环中添加到数组时遇到了一些问题。它只将最后的结果添加到数组中,并丢失前 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
4

1 回答 1

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
于 2013-08-29T09:34:36.080 回答