获取Errno :: ENOMEM:通过Mechanize“获取”页面时空间不足

时间:2013-03-19 12:42:57

标签: ruby windows-console mechanize-ruby

我目前正在尝试关注网络抓取教程,并且收到了红宝石错误消息“Errno :: ENOMEM:空间不足”。我找到了http://bugs.ruby-lang.org/issues/show/1063的解决方法,但我想知道是否有更永久的解决方案。我正在使用ruby 1.8.7(2010-12-23 patchlevel 330)[i386-mingw32]而且我无法更新到我怀疑会解决这个问题的新版本。只有在我尝试获取更大的页面时才会出现此问题。

当前解决方案:

class String
  def to_2d_array(value)
    unpack("a#{value}"*((size/value)+((size%value>0)?1:0)))
  end
end

class << $stdout
  alias old_write write

  def write(a) 
    a.to_s.to_2d_array(1024).each{|little| old_write little}
  end
end

1 个答案:

答案 0 :(得分:0)

要解决我的问题,我已添加:

class String
  def to_2d_array(value)
    unpack("a#{value}"*((size/value)+((size%value>0)?1:0)))
  end
end

class << $stdout
  alias old_write write

  def write(a) 
    a.to_s.to_2d_array(1024).each{|little| old_write little}
  end
end

到最后一个结束后的irb.rb文件。