programming/Python

[selenium] Selenium 기초 강의 자료

Jofresh 2023. 5. 4. 14:27
728x90
반응형

안녕하세요! 조신선입니다.

오늘은 파이썬 selenium 라이브러리에 대해 포스팅하도록 하겠습니다.

 

셀레니엄은 동적인 웹페이지를 크롤링 하려면 필수적으로 익혀야 하는 라이브러리 입니다.

뷰티풀수프나 리퀘스트로는 크롤링 하기 힘든, 네이버 지도와 같이 프레임을 이동하는 웹페이지를 크롤링하기 위해서는 필수적으로 익혀야 합니다. 

 

예를 들자면, 아래 이미지처럼 그냥 검색을 했을 경우 스크롤을 내리지 않는다면, 맛집리스트가 10개밖에 뜨지 않습니다. 

실제로 스크롤을 끝까지 내리면 54개의 가게가 한 페이지에 노출되는 것을 알 수 있습니다.

이렇게 동적인 웹페이지 정보를 추출할 수 있는 것이 셀레니엄이라고 이해하시면 될 것 같습니다.

 

오늘은 셀레니엄의 기초 강의와 예시를 작성하겠습니다.

 

 

1. Selenium이란?


Selenium은 웹 어플리케이션을 테스트하기 위한 자동화된 테스트 도구입니다.
Selenium을 사용하면 웹 어플리케이션의 사용자 행동을 모방하고, 테스트 결과를 자동으로 분석할 수 있습니다.


2. Selenium 설치하기


Selenium은 파이썬, 자바, C#, Ruby 등 다양한 언어로 사용할 수 있습니다.
파이썬에서 Selenium을 사용하기 위해서는 다음과 같은 패키지가 필요합니다.
selenium 패키지
webdriver 패키지
selenium 패키지는 pip 명령어를 통해 설치할 수 있습니다.

 

pip install selenium

3. Selenium 기본 사용법


- Selenium을 사용하기 위해서는 먼저 webdriver 객체를 생성해야 합니다.
- webdriver 객체를 생성할 때는 브라우저의 종류를 지정해주어야 합니다.

 

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

# Chrome 브라우저를 사용하기 위한 webdriver 객체 생성
driver = webdriver.Chrome('/path/to/chromedriver')

- webdriver 객체를 생성한 후에는 get() 메소드를 호출하여 웹 페이지를 불러올 수 있습니다.

 

# 네이버 메인 페이지 불러오기
driver.get('https://www.naver.com')

- 웹 페이지를 불러온 후에는 find_element_by_XXX() 메소드를 호출하여 원하는 요소를 찾을 수 있습니다.
- 찾은 요소를 클릭하거나, 텍스트를 입력하는 등의 작업을 수행할 수 있습니다.

 

# 검색창 요소를 찾아서 '파이썬'이라는 검색어 입력하기
search_box = driver.find_element(By.CSS_SELECTOR,"#query")
search_box.send_keys('파이썬')
search_box.submit()

- 작업을 수행한 후에는 webdriver 객체를 종료해주어야 합니다.

# webdriver 객체 종료
driver.quit()

※ 완성코드

 

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

# webdriver 설정 (Chrome, Firefox 등)
browser = webdriver.Chrome()

# 크롬 브라우저에서 네이버 검색 페이지 접속
browser.get("https://www.naver.com")

# 네이버 검색창에 "파이썬" 입력하기
elem = browser.find_element(By.CSS_SELECTOR,"#query") # 검색창 element 찾기
elem.send_keys("파이썬") # 검색어 입력하기
elem.send_keys(Keys.RETURN) # 검색어 입력 후 엔터키 입력하기

# 현재 페이지의 제목 출력하기
print(browser.title)

# 브라우저 종료하기
browser.quit()

 

생각보다 쉽지 않나요?!

위 코드를 실행하면 자동으로 네이버 홈페이지로 접속하고 "파이썬"이라고 검색한 뒤, 엔터키를 입력해서 검색결과를 보여준뒤 브라우저를 종료합니다. 

 

다음에는 이미지를 크롤링하는 코드로 돌아오겠습니다.

 

728x90
반응형