2023 주니어 SRE 엔지니어 후레임

반응형

셀레니움으로 브라우저를 자동조작하여 웹사이트를 크롤링하는 방법에 대해 다룹니다.
css 기반의 BeautifulSoup는 자바스크립트로 동작하는 웹사이트 크롤링에는 어울리지 않으므로 셀레니움을 사용했습니다. 브라우저는 크롬(Chrome)을 사용합니다.

 

 


※ 본 과정을 위해서는 먼저 파이썬이 설치되어 있어야 합니다.

필요한 것

1. 셀레니움 설치 (cmd 창을 띄우고 pip install selenium 입력)
2. ChromeDriver 다운로드 (자신의 크롬 버전에 맞게 다운로드)
또한, 코드를 짤 때 경로를 직접 입력해줘야 하므로 쉬운 경로에 저장한다.

 

 

모듈 임포트(Module Import)

우선, 파이썬으로 셀레니움을 사용하기 위해 필요한 모듈을 import한다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

 

WebDriver의 옵션 설정

그 다음, 셀레니움이 동작하도록 ChromeOptions를 설정한다.

options = Options()
options.add_argument('--disable-gpu');
options.add_argument('--disable-extensions');
options.add_argument('--proxy-server="direct://"');
options.add_argument('--proxy-bypass-list=*');
options.add_argument('--start-maximized');
# options.add_argument('--headless'); # headless를 사용할 경우 주석 제거

헤드레스(headless)란?

화면이나 페이지 이동을 표시하지 않고 동작하는 모드.

 

 

 

 

WebDriver(브라우저) 기동

# WebDriver의 경로 설정(절대경로와 상대경로 둘 다 가능)
DRIVER_PATH = 'c:\driver'

# 브라우저 기동
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)

 

웹 페이지에 액세스

# 이동하고자 하는 url을 입력
url = 'http://cafe.naver.com/joonggonara'

driver.get(url)

 

from selenium import webdriver

# 크롬 드라이버 오브젝트 생성
driver = webdriver.Chrome(executable_path="C:\driver\chromedriver.exe")

# 페이지 열기(여기선 구글)
driver.get("https://www.google.com/")

# 검색 텍스트의 element id 획득
search_box = driver.find_element_by_id("lst-ib")

# 검색창에 원하는 키워드 입력(여기선 Python)
search_box.send_keys("Python")

# 검색 버튼의 element id 획득
search_button = driver.find_element_by_name("btnK")

# 검색 버튼 클릭
search_button.click()

 

 

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band