R을 사용하여 ~ 1,000 개의 URL 목록을 긁습니다. 스크립트는 종종 재현 할 수없는 방식으로 실패합니다. 다시 실행하면 성공할 수도 있고 다른 URL에서 실패 할 수도 있습니다. 이 문제는 인터넷 연결이 일시적으로 끊어 지거나 URL을 스크래핑하는 서버의 일시적인 오류로 인해 문제가 발생할 수 있다고 생각됩니다.R에서 오류가 발생했을 때의 오류 처리
오류가 발생하면 다음 URL로 진행하도록 R 코드를 어떻게 디자인 할 수 있습니까? try
함수를 사용하여 시도했지만이 시나리오에서는 작동하지 않는 것 같습니다.
Test <- try(htmlTreeParse(URL, useInternalNodes = TRUE), silent = TRUE)
if(inherits(Test, "try-error")) next
그러나 다음 URL 정지 그냥이 단계 이전 작업 :
HTML <- htmlTreeParse(URL, useInternalNodes = TRUE)
그런 htmlTreeParse
원 '
library(XML)
df <- data.frame(URL=c("http://www.google.com/", "http://www.ask.com/", "http://www.bing.com/"))
for (i in 1:nrow(df)) {
URL <- df$URL[i]
# Exception handling
Test <- try(htmlTreeParse(URL, useInternalNodes = TRUE), silent = TRUE)
if(inherits(Test, "try-error")) next
HTML <- htmlTreeParse(URL, useInternalNodes = TRUE)
Result <- xpathSApply(HTML, "//li", xmlValue)
print(URL)
print(Result[1])
}
의이 긁어되는 URL이 단계에서 액세스 할 수 있음을 가정 해 봅시다
t 작업을하면 R이 경고/오류를 던지고 내for
루프가 중단됩니다.
for
루프를 긁어서 다음 URL로 계속 보내려면 어떻게해야합니까?
네, 환상적으로 작동하는 것 같습니다! 고맙습니다 – Rez99