2017-09-16 1 views
0

아래 코드를 실행하고 joblocations 실행시 오류가 발생했습니다. 페이지가 ulrs에로드되었지만 위치가 웹 페이지에서 추출되지 않았습니다. 작동하지 않습니다 아직 WARNING: XML content does not seem to be XML: 'https://www.r-users.com/jobs/page/1/과 :r 웹 스크래핑 코드를 실행하려하지만 오류가 발생했습니다.

library(data.table) 
library(XML) 
pages<-c(1:12) 

ulrs <- rbindlist(lapply(pages, function(x) 
    {url <- paste("http://www.r-users.com/jobs/page/",x,"/",sep = " ") 
    data.frame(url)}),fill = TRUE) 


joblocations <- rbindlist(apply(ulrs,1,function(url){ 
    doc1 <- htmlParse(url) 
    locations <- getNodeSet(doc1,'//*[@id="mainContent"]/div[2]/ol/li/dl/dd[3]/span/text()') 
data.frame(sapply(locations,function(x){xmlValue(x)}))  
}),fill = TRUE) 


Error: failed to load external entity "http://www.r-users.com/jobs/page/%201%20/" 

답변

0

먼저, 다음 XML와 해당 오류에 과거를 얻을 것이다 httphttps에 변화하지만, 또 다른 리드.

rvest에 대한 XML 패키지 사용을 교체하고 다시 시도했습니다.

library(data.table) 
library(rvest) 

pages<-c(1:12) 

ulrs <- rbindlist(lapply(pages, function(x) 
{url <- paste0("http://www.r-users.com/jobs/page/",x,"/") 
data.frame(url)} 
),fill = TRUE) 

joblocations <- rbindlist(apply(ulrs,1,function(url){ 
    doc1 <- read_html(url) 
    locations <- html_nodes(doc1,xpath = '//*[@id="mainContent"]/div[2]/ol/li/dl/dd[3]/span/text()') 
    data.frame(sapply(locations,function(x){html_text(x)}))  
})) 

rvest

는 HTTP 또는 HTTPS가 지정되어 있는지 여부를 작동하는 것 같다,하지만 그 전에 나를 넘어 무언가이다.

+0

안녕하세요 7 월 ... 여전히이 오류가 발생합니다 open.connection (x, "rb") 오류 : HTTP 오류 404. –

+0

답변을 편집했습니다. 문제는'paste' 명령의'sep' 매개 변수에 있습니다. 'sep = ""'는 작동해야하지만 웹 스크래핑을위한 URL을 만들 때는 대신'paste0'을 사용하는 것이 가장 좋습니다. – Jul

+0

정말 고맙습니다. 지금 일하고 있습니다 .... –