crawler란 웹사이트를 방문하여 각종 정보를 자동으로 수집하는 것을 말한다.

(ex. 신문기사 제목을 모두 수집하고 싶은경우,,또는 내용까지 수집할 경우 사람이 직접할수 없으니 crawler를 이용해서 자동화를한다.)

(이 작업을 crawling이라한다)


흔히 말하는 crawling은 우리가 보는 웹 사이트의 '소스 보기'를 통해서 해당 소스를 긁어오고 파싱하는 방식으로 정보를 가져온다.

(ctrl+u를 누르면 해당 페이지 소스를 볼 수 있다)


R언어로 크롤링을 하는경우에는 readLines(url, encoding=...)함수를 이용해서 홈페이지 소스를 긁어오고, stringr패키지를 이용해서 파싱하는 방법이 일반적이다.

python 같은 경우에는 from urllib import request를 이용해서 웹페이지를 긁어와서 BeautifulSoup4(bs4)를 이용해서 파싱하는게 일반적이다.

(scrapy를 이용하는 방법도 있다)


하지만 위 경우는 자바스크립트를 실행시키지 않은 상태의 소스코드를 불러온다.

CTRL+U를 통해서 확인한 소스는 자바스크립트를 실행하지 않은 소스코드이고

F12를 통해서 개발자도구로 확인한 소스는 자바스크립트를 실행한 소스코드이다.


만약 자바스크립트를 실행한 코드가 필요하면, 혹은 크롤링 하는 사이트가 로그인이 필요한 경우,, 등등 어떤 액션이 추가적으로 필요하면

R에서는 Rselenium, python에서는 selenium을 이용하면 된다.

selenium은 브라우저를 통해서 스크랩을 하기 때문에 브라우저에서 자바스크립트를 실행시키거나,,,로그인을 하거나 등의 행위가 가능하다.


위에 적은 방법들은 TEXT를 긁는다는 특징이 있다. (selenium은 경우에따라 아닐수도있다)


다음 포스팅에서는 jpg, css, js등등 홈페이지를 구성하는 자원들을 긁어오는 방법에 대해서 다룬다.

'crawling' 카테고리의 다른 글

web page 스크랩 (full download)  (0) 2016.10.09

+ Recent posts