본문 바로가기
Cording/Pyhon_크롤링

Python] Selenium 검색창에 검색어 자동으로 입력 - 코드포함

by €€£¥ 2022. 12. 10.

Python 라이브러리 Selenium을 이용하여 다음이나 네이버 구글 사이트의 검색창에 자동으로 검색어를 입력하여 검색을 진행하는 방법을 알아보자. 정상적으로 진행되었는지 확인을 위해 검색결과의 스크린 샷도 찍어보자. 

 

 

검색 사이트를 호출하는 방법

기본적인 selenium의 설치방법과 크롬 웹드라이버의 설치법 등은 이전 포스팅에서 정리해 두었으므로 내용이 필요하다면 하기 링크를 통해 확인하길 바란다. 

Python] Selenium 기본 세팅 및 사이트 호출방법 - 코드포함

 

Samla's Study

News & Issues about Economy // About Chess

getitall.tistory.com

어떤 사이트를 사용하든 상관없지만 티스토리 블로그이므로 다음(daum) 홈페이지에서 검색어를 자동으로 입력하는 것을 예제로 진행해보겠다. 먼저 다음(daum)의 홈페이지를 불러오는 코드 이다. 

driver.get('http://www.daum.net')    # daum 홈페이지 호출하기
time.sleep(3)    # 홈페이지 호출 후 3초 대기 / 홈페이지가 열리느데 시간이 걸릴 수 있으므로

 

 

검색창을 찾아 원하는 검색어 자동으로 입력하는 방법

검색창의 input 태그를 찾아 변수로 저장한 후 검색하고자 하는 검색어를 자동으로 입력하고 검색을 진행해보자. selenium의 find_element 함수를 사용하였으며, 해당 함수의 사용 방법에 대해서는 앞선 포스팅에서 정리해두었으므로 추가적인 내용이 궁금한 사람은 하기 링크를 통해 확인하길 바란다. 

Python] Selenium 기본 사용법 - find 사용법 - 오류 해결 포함

 

Samla's Study

News & Issues about Economy // About Chess

getitall.tistory.com

 

임의로 "유튜브"라는 검색어를 검색창에 입력하고 검색을 실행하는 코드로 작성하였다. 기본적인 html / css에 대한 지식은 필요하므로 해당 부분이 이해가 되지 않는다면 학습 후 하기 코드를 다시 봐주길 바란다.  검색어 입력에는 selenium의 send_keys 함수를 사용하였다.

#daum.net 검색창에 검색어 입력하기

search = driver.find_element(By.ID, 'q')  # daum 검색창 태그를 찾아 search 변수에 저장하기 / ID로 검색하였다.
search.clear()    # input 태그 내에 default 값이 입력되어 있는 경우를 대비해 기입력된 내용을 지워준다.
search.send_keys('유튜브')    # 검색창에 "유튜브" 검색어 입력하기.
search.send_keys(Keys.RETURN)    # 검색창에 검색어 입력후 ENTER 키 입력
time.sleep(5)   #검색완료 후 페이지 전환 시간을 위해 5초 대기

 

 

검색 결과창의 스크린샷을 찍는 방법

자동으로 입력한 검색어가 제대로 검색되고 실행되었는지 확인하기 위한 스크린샷을 찍는 방법이다. 스크린샷은 호출된 브라우저의 사이즈 크기로 생성되므로 검색어가 제대로 반영되었는지 확인할 수 있는 부분을 호출하여 스크린샷을 생성하는 것이 결과를 제대로 확인할 수 있을 듯하여 다음 검색결과의 '통합창' 부분을 찾아서 스크린샷을 찍도록 코드를 구성하였다. 스크린샷 생성에는 screenshot 함수를 사용하였다. 

# 검색 결과 확인을 위해 스크린샷 생성

# 검색결과 '통합창' 부분을 CSS SELECTOR로 찾아 변수로 저장
result = driver.find_element(By.CSS_SELECTOR, '#twaColl > div.coll_cont')
result.screenshot("result.png")    # 해당 tag 부분을 스크린샷으로 찍어 'result.png' 파일로 저장하기

 

 

Selenium 자동검색 전체코드

driver.get('http://www.daum.net')    # daum 홈페이지 호출하기
time.sleep(3)    # 홈페이지 호출 후 3초 대기 / 홈페이지가 열리느데 시간이 걸릴 수 있으므로

#daum.net 검색창에 검색어 입력하기
search = driver.find_element(By.ID, 'q')    # daum 검색창 태그를 찾아 search 변수에 저장하기 / ID로 검색하였다.
search.clear()    # input 태그 내에 default 값이 입력되어 있는 경우 내용을 지워준다.
search.send_keys('유튜브')    # 검색창에 "유튜브" 검색어 입력하기.
search.send_keys(Keys.RETURN)    # 검색창에 검색어 입력후 ENTER 키 입력

time.sleep(5)   #검색완료 후 페이지 전환 시간을 위해 5초 대기

# 검색 결과 확인을 위해 스크린샷 생성
result = driver.find_element(By.CSS_SELECTOR, '#twaColl > div.coll_cont')    #검색결과 '통합창' 부분을 CSS SELECTOR로 찾아 변수로 저장
result.screenshot("result.png")    # 해당 tag 부분을 스크린샷으로 찍어 'result.png' 파일로 저장하기

 

간단하게 Selenium 라이브러리를 이용하여 검색사이트의 검색창에 원하는 검색어를 자동으로 입력하고 검색결과를 확인하여 스크린샷을 생성하는 코드를 짜보았다. 필자와 같은 코알못들에게 조금이나마 도움이 되었으면 좋겠다. 포스팅 내용이 작게나마 도움이 되었다면 포스팅내 광고를 한 번 클릭해주는 아름다운 센스 부탁 드린다!

댓글