1. Selenium을 불러올 때

from selenium import webdriver 는 기본적으로 공통적이지만, 사용하는 웹 브라우저에 따라 뒤에 입력값이 달리집니다.

Chrome Webdriver.Chrome
Internet Explore Webdriver.Ie
Firefox Webdriver.Firefox
Opera Webdriver.Opera

 

 

2. Selenium으로 DOM 요소를 선택하는 방법

 

2-1 DOM 내부에 있는 여러 개의 요소 중 처음 찾아지는 요소를 추출

 

메서드 이름 설명
find_element_by_id(id) id 속성으로 요소를 하나 추출
find_element_by_name(name) name 속성으로 요소를 하나 추출
find_element_by_css_selector(query) CSS 선택자로 요소를 하나 추출
find_element_by_xpath(query) XPath를 지정해 요소를 하나 추출
find_element_by_tag_name(name) 태그 이름이 name에 해당하는 요소를 하나 추출
find_element_by_link_text(text) 링크 텍스트로 요소를 추출
find_element_by_partial_link_text(text) 링크의 자식 요소에 포함돼 있는 텍스트로 요소를 하나 추출
find_element_by_class_name(name) 클래스 이름이 name에 해당하는 요소를 하나 추출

 

2-2 DOM 내부에 있는 모든 요소 추출

 

메서드 이름 설명
find_elements_by_css_selector(query) CSS 선택자로 요소를 어러 개 추출
find_elements_by_xpath(query) XPath를 지정해 요소를 여러 개 추출
find_elements_by_tag_name(name) 태그 이름이 name에 해당하는 요소를 여러 개 추출
find_elements_by_class_name(name) 클래스 이름이 name에 해당하는 요소를 여러 개 추출
find_elements_by_partial_link_text(text) 링크의 자식 요소에 포함돼 있는 텍스트로 요소를 여려 개 추출

 

 

3. Selenium으로 요소 조작하기

 

메서드 또는 속성 설명
clear() 글자를 입력할 수 있는 요소의 글자를 지움
click() 요소를 클릭
get_attribute(name) 요소의 속성 중 name에 해당하는 속성의 갑을 추출
is_displayed() 요소가 화면에 출력되는지 확인
is_enabled() 요소가 활성화돼 있는지 확인
is_selected() 체크박스 등의 요소가 선택된 상태인지 확인
screenshot(filename) 스크린샷을 찍음
send_keys(value) 키를 입력
submit() 입력 양식을 전송
value_of_css_property(name) name에 해당하는 CSS 속성의 값을 추출
id 요소의 id 속성
location 요소의 위치
parent 부모 요소
rect 크기와 위치 정보를 가진 딕셔너리 자료형을 리턴
screenshot_as_base64 스크린샷을 Base64로 추출
screenshot_as_png 스크린샷을 PNG 형식의 바이너리로 추출
size 요소의 크기
tag_name 태그 이름
text 요소 내부의 글자

 

 

4. Selenium 드라이버 조작

 

메서드 또는 속성 설명
execute_async_script(script, *args) 비동기 처리하는 자바스크립트를 실행
execute_script(script, *args) 동기 처리하는 자바스크립트를 실행
get(url) 웹 페이지를 읽어 들임
get_cookie(name) 특정 쿠키 값을 추출
get_cookies() 모든 쿠키 값을 딕셔너리 형식으로 추출
get_log(type) 로그를 추출(browser/driver/client/server)
get_screenshot_as_base64() base64 형식으로 스크린샷을 추출
get_screenshot_as_file(filename) 스크린샷을 파일로 저장
get_screenshot_as_png() PNG 형식으로 스크린샷의 바이너리를 추출
get_window_position(windowHandle='current') 브라우저 위치를 추출
get_window_size(windowHandle='current') 브라우저 크기를 추출
implicitly_wait(sec) 최대 대기 시간을 초 단위로 지정해서 처리가 끝날 때까지 대기
quit() 드라이버를 종료시켜 브라우저를 닫음
save_screenshot(filename) 스크린샷을 저장
set_page_load_timeout(time_to_wait) 페이지를 읽는 타임아웃 시간을 지정
set_script_timeout(time_to_wait) 스크립트의 타임아웃 시간을 지정
set_window_position(x,y,windowHandle='current') 브라우저의 위치를 지정
set_window_size(width, height, windowHandle='current') 브라우저의 크기를 지정
title 현재 페이지의 타이틀을 추출

 

'AI > 데이터 수집' 카테고리의 다른 글

API(Openweather에서 날씨정보 받아오기)  (0) 2021.02.04
Selenium을 활용한 로그인  (0) 2021.02.02
requests 모듈의 메서드  (0) 2021.01.31
requests를 사용하여 로그인  (0) 2021.01.31
상대경로 및 절대경로  (0) 2021.01.26

오늘은 Selenium을 활용하여 Daum에 접속하고, 로그인까지 할 예정입니다.

 

일단 사전에 준비해야 할 사항이 있습니다.

 

 

1. 크롬 버젼 확인 및 그에 맞는 드라이버 받아오기

 

구글 크롬을 기준으로 작업을 진행 할 예정입니다.

 

크롬에 들어가시면 오른쪽 상단에 가로로 점 3개가 찍힌 모양을 보실 수 있습니다. 

 

그것을 오른쪽 상단 점 세개 -> 도움말 -> Chrome 정보를 클릭하여 크롬의 버젼을 확인해 줍니다.

 

크롬 버젼을 확인 하셨으면 구글에서 "크롬 드라이버"를 검색하여 버젼에 맞는 크롬드라이버를 받아서 설치해줍니다.

 

 

2. 로그인 하고자 하는 홈페이지에서 정보 알아오기

 

저는 Daum홈페이지에서 작업을 할 예정입니다.

 

일단 Daum 홈페이지에 들어가서 Daum 아이디로 로그인을 클릭합니다.

 

그리고 나서 오른쪽 상단 -> 도구 더보기 -> 개발자 도구를 클릭하여 아이디, 비밀번호, 로그인 클릭 버튼의 속성을 확인합니다.

(아이디와 패스워드는 name으로 가져올 예정이며, 클릭을 위한 로그인은 id로 가져올 것입니다.)

 

3. 알아낸 정보로 Selenium을 이용하여 자동 로그인 하기

 

time은 여기서는 사용하지 않았지만, 기본적으로 많은 정보를 추출할 때 컴퓨터가 속도를 따라가지 못해 자료를 추출하지 못하는 경우가 있고, 홈페이지에 트래픽이 걸리는 경우도 있으므로 많은 정보를 크롤링 하실 경우에 time설정을 해주시는 걸 추천해드립니다.

 

webdriver와 Keys를 import 해줍니다.

driver에 크롬드라이브를 불러와주신 후, 다음 로그인 화면 페이지 url을 입력해줍니다.

 

그리고 Daum에 가입하셨을 때 등록하신 아이디 및 비밀번호를 USER, pw에 입력해주시고,

 

driver.find_element_by를 사용하여 2번에서 알아낸 정보를 입력해주고 실행을 해줍니다.

실행을 하면, 크롬 홈페이지가 자동으로 뜨면서 아이디 비밀번호 입력 후 로그인을 하면 작업이 완료가 됩니다.

+ Recent posts