[공부 내용]
> chromedriver란?
크롬 브라우저의 'webdriver'
> webdriver
많은 브라우저(크롬, 파이어폭스 등), 운영체제 및 프로그래밍 언어를 지원하며 웹 응용 프로그램들의 테스트를 단순화 및 가속화해주는 툴
사용하는 브라우저에 맞게 설치해줘야 한다.
> 라이브러리 'selenium'
웹 드라이버를 사용하여 자동화를 실현하는 라이브러리. 데이터를 수집하는 방식 그대로 크롤링하는 기계를 만든다.
마우스 클릭, 키보드 입력, 뒤로가기 등의 동작이 가능하다.
- 내장 함수
find_element_by_ ?? () : 정적 크롤링의 find()와 같은 역할로, 크롤링을 위해 HTML 요소를 찾는 함수
# 기본 코드
driver.find_element_by_css_selector('태그 및 선택자')
# 기본 코드
driver.find_element_by_id('id')
driver.find_element_by_class_name('class')
# ex) '글쓰기' 버튼 - <a href="#" id="writeFormBtn" class="btn_type1 post_write _rosRestrict" onclick="clickcr(this,'abt.wrtlist', '', '', event);">
driver.find_element_by_id('writeFormBtn')
driver.find_element_by_class_name('btn_type1.post_write._rosRestrict')
# HTML 요소를 찾기 위한 적당한 id 혹은 class 등의 속성이 없을 경우 xpath를 사용
# 기본 코드
driver.find_element_by_xpath('XPath 선택자')
# ex) '글쓰기' 버튼의 'Copy XPath'결과 - //*[@id="writeFormBtn"]
driver.find_element_by_xpath('//*[@id="writeFormBtn"]')
find_elements_by_?? () : 정적 크롤링의 find_all()과 같은 역할. 입력한 태그 및 선택자에 해당하는 모든 HTML 요소를 찾는 함수
click() : HTML 요소를 클릭하는 함수
# 기본 코드
driver.find_element_by_??('태그 혹은 선택자').click()
# ex) '글쓰기' 버튼 클릭
driver.find_element_by_css_selector('a#writeFormBtn').click()
send_keys() : HTML 요소에 직접 텍스트를 입력하는 함수
# 기본 코드
driver.find_element_by_??().send_keys('텍스트')
# ex) 검색 칸에 '파이썬' 입력
driver.find_element_by_css_selector('input#query').send_keys('파이썬')
> 라이브러리 'time'
time.sleep()을 이용하여 크롤링이 끊기지 않도록 설정.
> driver.get( )
접속할 url 주소를 전달하기 위해서는 get() 함수를 사용.
'코린이_탈출 > 크롤링' 카테고리의 다른 글
[모각코_크롤링] 동적 크롤링 2 (0) | 2021.01.25 |
---|---|
[모각코_크롤링] 주말 숙제 (1) | 2021.01.24 |
[모각코_크롤링] 정적 크롤링 4 (1) | 2021.01.21 |
[모각코_크롤링] 정적 크롤링 3 (0) | 2021.01.20 |
[모각코_크롤링] 정적 크롤링 2 (0) | 2021.01.19 |