2009-11-28 40 views
2

循环遍历许多网页并调用类似下面的内容nokogiri doc.xpath()问题

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

它有多少页?如果你只检查几个,它会发生吗?消费量与页面数量是否成线性关系? – Steinbitglis 2009-11-28 01:26:51

+0

它发生在几千个html独特页面。和更多。 – bbbnb 2009-11-28 01:30:50

+0

更改您的用户名并不会让您更加烦恼,您一遍又一遍地发布相同的问题。 – 2009-11-28 01:36:05

回答

0

我认为,问题的根源在于,代码不是垃圾收集,直到页面和文档叶范围(纠正我,如果我错了)。

类似的问题进行说明here
这是libxml-ruby的问题,但据我所知,nokogiri实际上是在libxml上构建的。

我很抱歉,但我不知道这个问题的具体细节。这只是为了指出你正确的方向。

+0

谢谢你,我认为这是正确的方向....我将尝试强制垃圾收集与gc.start – bbbnb 2009-11-28 01:35:35