본문 바로가기
Python

[Python] 파이썬 웹 크롤링2 - 셀레니움으로 다음 메일 제목 크롤링 하기

by JM0121 2021. 7. 21.

 

지난 번에 셀레니움과 크롬드라이버로 웹을 띄우기까지 했는데,

 

오늘은 다음 메일에 접속하여 자동으로 로그인 후 메일 제목을 크롤링 해올 것 이다.

 

 

다음 메일 제목 크롤링


 

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 주소:

https://github.com/m3k0813/web-crawling/commit/5afc65b7925e115ba5499d8e0d384ce8288d1f8f#diff-b10564ab7d2c520cdd0243874879fb0a782862c3c902ab535faabe57d5a505e1