[withR]RSelenium을 이용한 웹스크래핑 — 웹드라이버 실행하기

Neo Jeong
신나는연구소
Published in
3 min readDec 26, 2019

R과 Selenium을 이용하여, 웹 상의 텍스트를 긁어모으(크롤링 또는 스크래핑)는 방법에 대해서 포스팅 하고자 한다.

웹상의 텍스트를 긁어오기 위해서는 기본적으로 해당 페이지의 URL주소로 접속해 페이지의 HTML소스를 파싱한 후 해당 태그 부분에 텍스트를 가져오는 방식이다.

이번 포스팅에서 Selenium을 사용하는 이유는 Javascript로 작성된 페이지에서 텍스트를 가져오기 위해서이다.

Javascript로 작성된 page는 이벤트를 호출시키는 동작이 추가적으로 필요하고, Selenium으로 그 동작을 수행할 수 있다.

그럼 크롤링(스크래핑)에 필요한 패키지들을 알아보자.

library(RSelenium) #webdriver라는 것을 통해 디바이스에 설치된 브라우저를 제어할 수 있따.

#Chrome을 사용할 것이므로 Chrome이 설치되있어야함.

#Sys.setenv(JAVA_HOME=’C:/Program Files/Java/jre1.8.0_111')

library(rvest) #HTML처리

library(httr) #HTML처리

library(stringr) #문자열 함수

위 패키지들을 설치해야한다. 호출할때는 library(), 설치할때는 install.packages(“”)로 실행하면 된다.

이제 본격적으로 Selenium을 이용해 크롬 드라이버를 실행시켜보자.

ch=wdman::chrome(port=4567L) #chrome드라이버를 포트 4567번에 배정하고, 실행준비

대표사진 삭제

#이런식으로 나오면 정상적으로 준비가 완료됨

remDr=remoteDriver(port=4567L, browserName=’chrome’) #remote설정

remDr$open() #크롬드라이버 실행

대표사진 삭제

#크롬드라이버 실행 화면

사진과 같이 크롬드라이버가 실행되면 정상적으로 작동이 완료된 것입니다.

스크랩하고 싶은 사이트로 이동하기 위해서는, 주소창에 URL주소를 직접 입력하는 방법과 아래 처럼 명령어를 작성하는 방법 두가지가 있다.

remDr$navigate(“http://www.naver.com") #URL로 이동

대표사진 삭제

#스크랩 하고 싶은 사이트로 이동

원래 Selenium은 웹테스트를 자동화하기 위한 목적의 라이브러리 이지만, 이를 효과적으로 사용하면 효과적인 크롤링 및 스크래핑을 수행할수 있다.

종료를 할때는 다음 명령어를 실행하자.

remDr$close

이번포스팅에서는 웹드라이버를 실행하는 것까지 해봤고, 다음 포스팅에서 이어서 HTML소스를 긁어서 원하는 부분의 텍스트를 저장하는 부분을 해보겠다.

--

--

Neo Jeong
신나는연구소

#Data Analyst #세상을 보는 데이터 분석가 #책을 읽는 몽상가