Ich habe ein Verzeichnis mit ca. 46.000 Verbindungen (I genannt links3) und ich möchte, dass jeder von ihnen mit dem folgenden Code kratzen:R Crash mit xml2 Paket in einer Schleife
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{}
}
Aber nach etwa 5000 Iterationen I die folgende Nachricht erhalten:
r for windows gui frontend stopped working
Ich muss R Sitzung schließen und neu starten.
Ich habe meine Systemkonfiguration geschaut und es zeigt folgendes:
Processes: 93;
CPU Usage 6%;
Physical Memory: 51%;
RAM:8.0 GB;
Windows 7;
Warum ich diese Meldung habe? Wie kann ich es lösen?
Können Sie es einfach in der Befehlszeile ausführen? Ich habe den gesamten Code nicht gelesen, aber gibt es irgendwelche Pop-Ups oder Graphen oder ähnliches an irgendeinem Punkt? Wenn ja, deaktiviere sie. Wenn nicht, von der Befehlszeile ausführen. –
Eigentlich habe ich den Code mit a ausgeführt.bat file in verschiedene Computer: "C: \ Programme \ R \ R-3.2.2 \ bin \ x64 \ R.exe" CMD BATCH "~ \ script.R" auch mit R Studio und ich habe das gleiche Problem. Meine R-Version ist: R-3.2.2 – Arlet
Nun, für den Anfang würde ich 'toString()' vermeiden und es gibt eine wesentlich bessere Möglichkeit, um zu den Daten zu gelangen, aber wir haben keine Ahnung, was Ihre Daten tatsächlich sind, seit Sie didn Ich gebe es nicht. – hrbrmstr