Pek*_*kka 5 xml memory-leaks r web-scraping
我试图运行一些简单的程序从html代码中提取表.但是,XML包中的readHTMLTable似乎存在一些内存问题.有什么方法可以轻松地解决这个问题.就像以某种方式为这个命令指定一些特殊的内存然后手动释放它.
我试图把它放在一个函数中并尝试使用gc()和不同版本的R和这个包,似乎什么都没有用.我开始绝望了.
示例代码.如何在不爆炸内存大小的情况下运行它?
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
while(TRUE) {
b = readHTMLTable(a)
#do something with b
}
Run Code Online (Sandbox Code Playgroud)
编辑:这样的事情仍然占据了我的所有记忆:
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
f <- function(x) {
b = readHTMLTable(x)
rm(x)
gc()
return(b)
}
for(i in 1:100) {
d = f(a)
rm(d)
gc()
}
rm(list=ls())
gc()
Run Code Online (Sandbox Code Playgroud)
我正在使用win 7并尝试使用32位和64位.
我在 XML 包中也遇到了很多内存泄漏问题(在 Windows 和 Linux 下),但我最终解决它的方法是在每个处理步骤结束时删除该对象,即添加一个 rm(b) 和每次迭代结束时的 gc() 。让我知道这是否也适合您。