RSelenium을 활용하여 위경도 가져오기
RSelenium 사용하기
예전엔 따로 다운로드 받지 않아도 패키지만 설치해서 크롤링이 가능했는데 크롬버전 업그레이드 때문인지 cmd로 chromeDriver를 열어주는 방법을 사용해야 된다.
목차
1. 필요 파일 다운로드
2. 크롤링 환경 만들기
3. R에서 크롤링 시작하기
1.필요파일 다운로드
우선 cmd로 chrome Driver를 열어주는 방법을 알아보자.
아래 3개의 파일을 같은 경로에 다운로드 받자.
아래와 같이 selenium-server와 geckodriver, chromedriver 3개를 설치해주면 된다.
다운로드 받은 파일을 한 경로에 옮긴다.
위에서 보시다 시피 나의 경로는 C:\selenium이다.
2. 크롤링 환경 만들기
관리자권한으로 명령프롬프트를 실행한다.
아래의 명령어를 입력한다.
참고로 명령프롬프트의 붙여넣기는 shift + insert 이다.
cd c:\selenium
java -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-3.9.1.jar -port 4445
port 는 자기 자신이 열고싶은 번호를 사용하면 되며 selenium-server-standalone의 버전은 자신의 것과 같게 맞춰주면 된다.
3. R에서 크롤링 시작하기
library(RSelenium)
library(stringr)
remDr <<- remoteDriver(port =4445L,browser='chrome')
name=c('대구대','영남대','계명대')
geo_code=function(name,n=3){
url='https://www.google.com/maps'
remDr$navigate(url)
search=NULL
while(length(search)==0){
assign('search',remDr$findElement(using='css selector',value='input#searchboxinput.tactile-searchbox-input'))
}
data=NULL
for(i in 1:length(name)){
search$clearElement()
search$sendKeysToElement(list(name[i],key='enter'))
Sys.sleep(n)
lonlat=as.numeric(str_split(substr(remDr$getCurrentUrl()[[1]],
regexpr('@',remDr$getCurrentUrl()[[1]])+1,regexpr(',[0-9]+z',remDr$getCurrentUrl()[[1]])-1),',')[[1]])
data=rbind(data,data.frame(name=name[i],lat=lonlat[1],lon=lonlat[2]))
}
return(data)
}
geo_code(name)
remDr$close()
'R > crawling' 카테고리의 다른 글
네이버 실시간 검색어 크롤링하기 (0) | 2019.07.04 |
---|---|
기상청 자료 다운로드 (0) | 2019.05.22 |
XML package를 활용한 정적 크롤링 (0) | 2019.04.15 |
PlotGoogleMaps 사용해 AWS, ASOS 위치 나타내기 (0) | 2019.04.11 |
크롤링을 활용한 미세먼지 실시간 시각화하기 (0) | 2019.03.21 |