2017-09-16 58 views
0

以下のコードを実行して、ジョブの実行時にエラーが発生しました。ページはulrsに読み込まれますが、場所はWebページから抽出されません。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

まず、httpshttpを変更すると、XMLでそのエラーを過ぎてあなたを取得しますが、その後、別のにつながる:WARNING: XML content does not seem to be XML: 'https://www.r-users.com/jobs/page/1/、まだ動作しません。

rvestXMLパッケージの使用を交換して動作させました。

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 =" "'はうまくいくはずですが、WebスクレイピングのためのURLを構築するときは、代わりに 'paste0'を使うのが最善でしょう。 – Jul

+0

ありがとうございました..今働いています.... –

関連する問題