我正在使用R的XML和RCurl软件包抓取一个网站链接。我需要进行多次调用(几千个)。
我使用的脚本采用以下形式:
raw <- getURL("http://www.example.com",encoding="UTF-8",.mapUnicode = F)
parsed <- htmlParse(raw)
links <- xpathSApply(parsed,"//a/@href")
...
...
return(links)
单次使用时,没有问题。 但是,当应用于URL列表(使用sapply)时,我收到以下错误:
函数错误(type,msg,asError = TRUE):Recv失败: 连接由同行重置
如果我稍后重试相同的请求,通常会返回ok。 我是Curl和web scraping的新手,不知道如何修复或避免这种情况。
提前谢谢
答案 0 :(得分:-1)
尝试这样的事情
for(i in 1:length(links)){
try(WebPage <- getURL(links[[i]], ssl.verifypeer = FALSE,curl=curl))
while((inherits(NivelRegion, "try-error"))){
Sys.sleep(1)
try(WebPage <- getURL(links[[i]], ssl.verifypeer = FALSE,curl=curl))
}