Python(파이썬) 셀레니움(Selenium) 이용해서 웹 크롤링 하는 방법 - 로그인하기 |
환경: Selenium |
Selenium(셀레니움) 은 사용자가 아닌 프로그램이 웹 브라우저를 제어할 수 있게 해 주는 라이브러리입니다. Selenium 은 서버와 클라이언트로 나누는데, 웹 브라우저 종류 마다 클라이언트 프로그램이 별도로 필요합니다. 이전에 Selenium 라이브러리를 설치하고 웹 브라우저 제어를 위한 드라이버 다운로드 방법에 대해 알았습니다. 오늘은 티스토리 블로그 관리자 페이지를 로그인 해 보겠습니다.
▼ 먼저 Selenium 으로 로그인을 하려면 정보를 입력하고 클릭할 컨트롤들의 ID 를 알아야 합니다. 웹 페이지를 소스를 직접 열어서 확인할 수 있습니다. 크롬은 웹 페이지 컨트롤을 선택하면 소스에서 해당 tag 를 찾아 주는 편리한 기능이 있습니다. F12 를 눌러 개발자 도구를 띄웁니다. 그리고 개발자 도구 왼쪽 끝에 화살표 버튼을 누릅니다.
▼ 화살표 버튼이 활성화된 상태에서 화면에 컨트롤을 클릭하거나 마우스를 가져가 보세요. 개발자 도구 화면에서 해당 컨트롤의 소스 위치를 찾아 줍니다.
▼ 아이디와 패스워드를 입력할 input 태그의 id 값을 알아냅니다.
▼ 로그인을 위한 아이디와 비밀번호 입력 컨트롤의 id 값을 알아 냈다면 WebDriver 의 find_element_by_id 함수로 컨트롤 객체를 가져옵니다. 그리고 send_keys() 함수로 로그인 아이디와 패스워드를 입력합니다.
login = driver.find_element_by_id("loginId") login.send_keys("dkjjaslfjdii") login = driver.find_element_by_id("loginPw") login.send_keys("******") |
▼ 로그인을 위한 입력이 끝났다면 버튼을 클릭해야 합니다. 위에서 아이디와 비밀번호 입력 태그를 찾던 방법으로 버튼 태그를 찾습니다.
▼ 태그를 선택하고 오른쪽 마우스를 눌러 Copy > Copy XPath 메뉴를 선택합니다. 왜 XPath 값을 복사할 까요? 태그 요소의 유일한 값인 id 가 없기 때문입니다. 대신 DOM 구조에서 위치를 나타내는 XPath 값을 알면 접근이 가능합니다.
▼ 함수는 find_element_by_xpath() 로 id 대신 xpath 가 붙었습니다. 따움표 “”” 와 XPath 값을 find_element_by_xpath() 함수의 파라미터로 넘깁니다. 함수는 click() 입니다. 사용자가 로그인을 위해 버튼을 클릭한 것과 같습니다.
driver.find_element_by_xpath("""//*[@id="authForm"]/fieldset/div/button""").click() |
▼ 전체 소스는 다음과 같습니다.
from selenium import webdriver
# 다운받은 chromedriver의 위치를 지정해준다. driver = webdriver.Chrome('D:\Project\Python\chromedriver_win32\chromedriver.exe')
driver.implicitly_wait(3) driver.get("http://mainia.tistory.com/admin/center/")
login = driver.find_element_by_id("loginId") login.send_keys("gonhaha201@gmail.com") login = driver.find_element_by_id("loginPw") login.send_keys("****")
driver.find_element_by_xpath("""//*[@id="authForm"]/fieldset/div/button""").click() |
▼ 소스를 실행한 결과 로그인에 성공했습니다. 이렇게 finde_element_by ~ 함수들을 이용해서 요소 객체를 가져오면 쉽게 제어할 수 있습니다.
'파이썬 Python' 카테고리의 다른 글
파이썬 Python 사칙 연산, 주요 연산자 다루는 방법 (0) | 2022.10.13 |
---|---|
파이썬 Python 이클립스 개발 환경 설정하기 2 – 프로젝트 생성과 실행하기 (1) | 2019.06.27 |
파이썬 Python 이클립스 개발 환경 설정하기 1 - PyDev 플러그인 설치하기 (0) | 2019.06.24 |
파이썬(Python) PyScripter IDLE 개발툴 사용하는 방법 (0) | 2019.01.12 |
파이썬(Python) IDLE 단축키 사용하는 방법 (0) | 2018.08.27 |
파이썬(Python) 개발 도구 Aptana Studio(압타나 스튜디오) 로 개발하는 방법 (0) | 2017.07.01 |
Aptana Studio (압타나 스튜디오) failed to correctly acquire installer_nodejs_windows.msi file crc error 에러 해결하는 방법 (0) | 2017.06.17 |
비주얼 스튜디오(Visual Studio) 파이썬(Python) 개발 환경 만드는 방법 (0) | 2017.06.01 |