작성
·
281
0
1.
윗 부분 코드에는 name,id,x,y,address를 찾기 위해서 list앞에 [[1]]를 일괄적으로 붙이는 건 이해가 가는데, 아래의 sapply 부분 코드에서의 function부분을 보면 [[1]]가 없는데 왜 그런지 잘 이해가 가지 않습니다.
b2$result$site$list[[1]]가 아니라 b2$result$site$list를 입력값으로 받는거면 함수에 적용되는 식도 b2$result$site$list$name 등 이런 식이 아닌가요? 따로 b2$result$site$list$name을 시도해봤는데 오류가 뜨고..
즉 함수의 입력값에 들어가는 값이 x[[1]]가 아니라 단순히 x로 들어가는 것 같은데 왜 정상적으로 실행이 되는건지 원리가 잘 이해가 안가네요.
2.
왜 이런 오류가 뜨는 지 잘 모르겠네요.
첫번째 키워드(신촌 카페)는 잘 수집되는데 두 번쨰부터 막히는 것 같습니다. 키워드를 바꿔서 해봤는데도 항상 두 번째 키워드만 시행이 안됩니다. HTTP 404 오류가 발생했다고해서 사이트에 직접 접속해보면 문제없이 되서 무엇이 문제인지 잘 모르겠습니다.
감사합니다
답변 1
0
안녕하세요. 님 답변이 늦어서 대단히 죄송합니다.
크롤링은 기본적을 웹사이트 구조에 따라 달라지는데, 웹사이트 구조가 바뀌면 당연히 코드도 수정이 필요하게 됩니다.
현재 네이버지도의 경우 막히진 않았습니다만, 지속적인 web 호출을 차단하고 있는 것 같습니다.
readLines를 아래와 같이 수정해주시면 에러처리를 하면서 수집이 가능합니다.
if(class(try(b<-readLines(url,encoding="UTF-8")))=='try-error'){
}