지난 번에 셀레니움과 크롬드라이버로 웹을 띄우기까지 했는데,
오늘은 다음 메일에 접속하여 자동으로 로그인 후 메일 제목을 크롤링 해올 것 이다.

from selenium import webdriver
driver = webdriver.Chrome('./chromedriver.exe')
driver.get('https://logins.daum.net/accounts/signinform.do?url=https%3A%2F%2Fmail.daum.net%2F')
다음과 같이 셀레니움과 크롬드라이버를 사용하여 다음 메일 로그인 창을 띄웠다.
자동 로그인 구현 하기
셀레니움은 자동화 프로그램으로 웹 동작이 가능하다. 이러한 장점을 이용해 로그인을 구현할 수 있다.
셀레니움에서 제공하는 find_element_by를 통해 id, class, name, xpath 등 요소를 찾아 접근 할 수 있다.
요소를 찾기 위해 Ctrl + Shift + c 를 누르고 아이디 입력 창에 마우스를 가져다 대면 해당 요소를 찾을 수 있다.

요소를 찾았으면 코드를 작성해보자.
my_id="아이디" # 다음 아이디 입력
my_pwd="비밀번호" # 다음 비밀번호 입력
driver.find_element_by_name('id').send_keys(my_id) # id요소를 찾아 my_id값을 입력
driver.find_element_by_name('pw').send_keys(my_pwd) # pw요소를 찾아 my_pwd값을 입력
driver.find_element_by_xpath('//*[@id="loginBtn"]').click()
위와 같이 send_keys를 통해 id와 pwd 입력 창에 나의 계정이 자동으로 입력된다. 로그인 버튼을 입력 하기
위해 이번에는 xpath로 요소를 찾았고 click()을 활용해 버튼을 누를 수 있게 된다. 이제 실행을 해보면
정상적으로 로그인이 되었다!

다음은 메일 제목을 추출 해올 것이다.

같은 방식으로 요소를 찾았다. 하지만 메일 제목 같은 경우 여러 개의 요소가 존재하여 한 페이지 전체를 크
롤링 하기위해 find_elements_by를 사용할 것 이다.
# 메일 제목 추출
titles = driver.find_elements_by_css_selector('strong.tit_subject')
for title in titles:
print(title.text)
titles 리스트로 제목들을 받아오고 for문을 통해 title.text를 출력하여 메일 제목을 출력한다.

Git 주소:
'Python' 카테고리의 다른 글
[Python] 파이썬 새 메일이 오면 카카오톡으로 나에게 메세지 보내기 (2) | 2021.07.26 |
---|---|
[Python] 파이썬 웹 크롤링 - 셀레니움으로 웹 크롤링 해보기! (0) | 2021.07.19 |