我有一个包含大约 46000 个链接的目录(我称为 links3),我想使用以下代码抓取每个链接:
library(reshape)
library(plyr)
library(rvest)
library(xml2)
base <- matrix(, nrow = (nrow(links3)), ncol = 19)
basedes <- matrix(, nrow = (nrow(links3)), ncol = 19)
coor <- matrix(, nrow = (nrow(links3)), ncol = 3)
for (i in 1:(nrow(links3))){
x <- links3[i,1]
doc <- read_html(paste0(x))
val <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[1]/h3/b"))
if(val=="<b>Tipo Inmueble</b>"){
basedes[i,1] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[1]/h3/b"))
basedes[i,2] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[3]/h3/b"))
basedes[i,3] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[5]/h3/b"))
basedes[i,4] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[7]/h3/b"))
basedes[i,5] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[9]/h3/b"))
basedes[i,6] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[11]/h3/b"))
basedes[i,7] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[13]/h3/b"))
basedes[i,8] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[15]/h3/b"))
basedes[i,9] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[17]/h3/b"))
basedes[i,10] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[19]/h3/b"))
basedes[i,11] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[21]/h3/b"))
basedes[i,12] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[23]/h3/b"))
basedes[i,13] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[1]/h3/b"))
basedes[i,14] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[3]/h3/b"))
basedes[i,15] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[5]/h3/b"))
basedes[i,16] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[7]/h3/b"))
basedes[i,17] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[9]/h3/b"))
basedes[i,18] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[11]/h3/b"))
base[i,1] <- toString(xml_find_all(doc, xpath="*//*[@id='info_nombre']/ul[1]/li[2]/h4"))
base[i,2] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[4]/h4"))
base[i,3] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[6]/h4"))
base[i,4] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[8]/h4"))
base[i,5] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[10]/h4"))
base[i,6] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[12]/h4"))
base[i,7] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[14]/h4"))
base[i,8] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[16]/h4"))
base[i,9] <- toString(xml_find_all(doc, xpath="//***[@id='info_nombre']/ul[1]/li[18]/h4"))
base[i,10] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[20]/h4"))
base[i,11] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[22]/h4"))
base[i,12] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[1]/li[24]/h4"))
base[i,13] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[2]/h4"))
base[i,14] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[4]/h4"))
base[i,15] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[6]/h4"))
base[i,16] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[8]/h4"))
base[i,17] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[10]/h4"))
base[i,18] <- toString(xml_find_all(doc, xpath="//*[@id='info_nombre']/ul[2]/li[12]/h4"))
lon <- toString(xml_find_all(doc, xpath="*//input[@type='hidden']"))
lon <- gsub(".*longitud", "", lon)
lon <- gsub("/>.*", "", lon)
lon <- gsub("value=", "", lon)
lon <- gsub("\"", "", lon)
lon <- gsub(" ", "", lon)
coor[i,1] <- lon
lat <- toString(xml_find_all(doc, xpath="*//input[@type='hidden']"))
lat <- gsub(".*latitud", "", lat)
lat <- gsub("/>.*", "", lat)
lat <- gsub("value=", "", lat)
lat <- gsub("\"", "", lat)
lat <- gsub(" ", "", lat)
coor[i,2] <- lat
cod<- toString(xml_find_all(doc, xpath="*//div[@class='code']"))
cod <- gsub(".*web: ", "", cod)
cod <- gsub("<.*", "", cod)
coor[i,3] <- cod
remove(val)
remove(lat)
remove(lon)
}else{}
}
但经过大约 5000 次迭代后,我收到以下消息:
r for windows gui frontend stopped working
我必须关闭 R 会话并重新开始。
我查看了我的系统配置,它显示以下内容:
Processes: 93;
CPU Usage 6%;
Physical Memory: 51%;
RAM:8.0 GB;
Windows 7;
为什么我会收到这条消息?我该如何解决?