1. Selenium을 이용한
Dynamic Site Crawler 만들기
KAIST Graduate School of Culture Technology
M.S. Candidate
Gyuhyeon Jeon
The Q Group
2. Crawler
• Crawl[Verb] 1
– 기다
– 기어가다
• Web Crawler [C. Noun] 2
– an Internet bot which
systematically browses the
World Wide Web, typically
for the purpose of Web
indexing.
3. Web Crawling
• World Wide Web 상의 정
형/비정형화된 데이터들을
수집해 원하는 형태에 맞게
재정형화하여 저장하는 행
위
• 다른 형태로 정보를 재 가공하여
원 소스가 제공하던 매체와 다른
매체에도 이용하기 쉽게 만듬
(ex. 초기버전의 서울버스)
• 온라인 상에 공개는 되었지만
Database 류의 형식으로는 제공
하지 않는 데이터의 수집
4. Crawling을 위해 알아야 할 것들
• HTML
• Document Object Model
• Cascading Style Sheet
• Xpath
• Javascript
• HTTP
• Ontology
• Database
5. 두 가지 속성으로 본 크롤링의 난이도
사이트가 정적 사이트가 동적
수집하고자 하는
각 요소들에
Id나 class가 지정됨
하 중(또는 하)
수집하고자 하는
각 요소들에
Id나 class 없음
중 상
6. Crawling 전략 세우기
사이트가 정적인가?
(AJAX Call 등이 없는가?)
AJAX Call로 들어오는
데이터에 내가 수집
하고자 하는 데이터가
있는가?
Html Parser를 사용한다
(Jsoup 등)
AJAX Call을 직접 만들어
요청할 수 있는가?HTTP Library를
사용한다
(asynchttpclient,
Play-ws 등)
???
7. Selenium
• Selenium automates
browsers. That's it! What
you do with that power is
entirely up to you.
Primarily, it is for
automating web
applications for testing
purposes, but is certainly
not limited to just that.
Boring web-based
administration tasks can
(and should!) also be
automated as well. 3
8. Selenium
• 브라우저 자동화 툴
• 웹 서비스의 동작 테스트를
자동화하기 위해서 만들어
진 라이브러리
• 다양한 브라우저 지원
(even PhantomJS)
• 다양한 언저 지원 (even R)
• Open Source!
(https://github.com/Sele
niumHQ/selenium)
9. Selenium WebDriver
• Driving a browser
natively as a user
would either locally or on
a remote machine using
the Selenium Server it
marks a leap forward in
terms of browser
automation. 4
10. Selenium WebDriver
• W3C 표준인 WebDriver
API를 사용해 실제로 사용
자들이 사용하는 브라우저
를 가지고 자동화 테스트를
할 수 있게 도와줌
• 브라우저 내 사용자의 다양
한 Event 를 실행하는 것은
물론, Javascript도 조작
가능함
11. Selenium과 Chrome Driver를 이용해 크롤링 하기
• 무슨 언어를 쓸 것인지는 자유로운 편
• JAVA 기준으로 진행
• Selenium : http://selenium-
release.storage.googleapis.com/2.53/selenium-java-
2.53.0.zip or Package Manager 사용
• ChromeDriver :
https://sites.google.com/a/chromium.org/chromedriv
er/