2009-11-28 63 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