在循环浏览许多网页并调用简单的内容时,如下所示
manyhtmlpages.each do |page|
doc = Nokogiri::HTML(page)
puts doc.xpath("/html/body/h2[1]","/html/body/a[1]").to_s
end
我观察到内存消耗不断上升,直到脚本由于内存不足而终止。
当我删除doc.xpath位时,不会遇到上述错误。
答案 0 :(得分:0)
我认为问题的根源在于,在页面和文档都离开范围之前,代码不会被垃圾收集(如果我错了,请纠正我)。
描述了一个类似的问题here 这是libxml-ruby的一个问题,但据我所知,nokogiri实际上建立在libxml上。
对不起,我不知道这个问题的具体细节。只是指出你正确的方向。