• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 수집 · 처리

  • 해결 여부

    미해결

원하는 지역의 카페(맛집) 리스트 크롤링 10:09분경 질문

20.12.03 17:44 작성 조회수 145

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

코코님의 프로필

코코

지식공유자

20.12.10 14:27

안녕하세요. 차성원 님 답변이 늦어서 대단히 죄송합니다.

크롤링은 기본적을 웹사이트 구조에 따라 달라지는데, 웹사이트 구조가 바뀌면 당연히 코드도 수정이 필요하게 됩니다.

현재 네이버지도의 경우 막히진 않았습니다만, 지속적인 web 호출을 차단하고 있는 것 같습니다.

readLines를 아래와 같이 수정해주시면 에러처리를 하면서 수집이 가능합니다.

  if(class(try(b<-readLines(url,encoding="UTF-8")))=='try-error'){

    

  }