본문 바로가기
Python/Selenium

[Selenium] 셀레니움 기초 사용방법.

by 미눅스[멘토] 2024. 10. 11.
728x90

 

selenium : 웹사이트 자동화 및 테스트를 위한 도구

 

selenium 활용예시

-웹사이트 로그인 자동

-컨텐츠 업로드 자동화

-좋아요 자동으로 누르기

-쪽지 자동으로 보내기

-예약 매크로

-메일 자동으로 보내기

 

selenium 라이브러리 설치

pip install selenium

 

selenium 기본 템플릿은 아래와 같다 

복붙해서 사용하자

 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# 준비물 : 크롬 드라이버를 다운받기 위해서는 크롬 브라우저가 깔려 있어야함
# 크롬 드라이버(크롬을 제어하는 도구) 생성
driver = webdriver.Chrome()

# 페이지 이동
driver.get("https://www.naver.com")

# 태그찾기
search = driver.find_element(By.CSS_SELECTOR, "#query")

# 1. 클릭
search.click()

# 2. 문자 입력
search.send_keys('쿠팡')

# 3. 키 입력
search.send_keys(Keys.ENTER)
 

 

 

전체적인 모습

여기서

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# 준비물 : 크롬 드라이버를 다운받기 위해서는 크롬 브라우저가 깔려 있어야함
# 크롬 드라이버(크롬을 제어하는 도구) 생성
driver = webdriver.Chrome()

이부분만 이렇게 실행해 보면 아래처럼 아무것도 없는

크롬이 자동화된 테스트 소프트웨어에 의해 제어되고 있다고 창이하나 뜸.

이 웹브라우저를 파이썬에서 왔다리갔다리 마음대로 제어가 가능하다.

여기서 네이버로 이동하고

# 페이지 이동
driver.get("https://www.naver.com")

 

 

태그를 찾아서

 

search 변수에 담아준다.

# 태그찾기
search = driver.find_element(By.CSS_SELECTOR, "#query")

 

이후

1.search(검색어 입력 창)을 클릭하고

2. '원하는 검색어를 입력'

3.엔터

# 1. 클릭
search.click()

# 2. 문자 입력
search.send_keys('쿠팡')

# 3. 키 입력
search.send_keys(Keys.ENTER)

 

 

아래처럼 결과 짠!!

 

 

 

보너스

 
from selenium import webdriver


options = webdriver.ChromeOptions()

# headless 옵션 설정
options.add_argument('headless')
options.add_argument("no-sandbox")

# 브라우저 윈도우 사이즈
options.add_argument('window-size=1920x1080')

# 사람처럼 보이게 하는 옵션들
options.add_argument("disable-gpu")   # 가속 사용 x
options.add_argument("lang=ko_KR")    # 가짜 플러그인 탑재
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36')  # user-agent 이름 설정

# 드라이버 위치 경로 입력
driver = webdriver.Chrome('./chromedriver.exe', chrome_options=options)

driver.get('https://naver.com')
driver.implicitly_wait(3)
driver.get_screenshot_as_file('capture_naver.png')    # 화면캡처

driver.quit() # driver 종료