본문 바로가기
App Programming/Web Crawler

[Web Crawler] 셀레니움 (Selenium) (1)

by goatlab 2022. 2. 15.
728x90
반응형
SMALL

셀레니움 (Selenium)

 

python으로 크롤링할 때 Beautifulsoup4와 더불어 빼놓을 수 없는 훌륭한 라이브러리이다.

 

pip install selenium # python 환경
conda install selenium # conda 환경

 

Import

 

import selenium
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait

 

드라이버 (driver)

 

Chrome https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox https://github.com/mozilla/geckodriver/releases
Safari https://webkit.org/blog/6900/webdriver-support-in-safari-10/

 

불러오기(Driver & Web Load)

 

URL = 'https://...'

driver = webdriver.Chrome(executable_path='chromedriver')
driver.get(url=URL)

 

webdriver.Chrome(executable_path) 함수를 사용하여 드라이버를 로드한다. 여기서는 driver라는 변수에 저장한다.  다운로드한 파일 이름이 chromedriver.exe라면 경로는 같은 디렉토리일 때 파일 이름 (chromedriver)만 입력하면 된다. 확장자는 필요 없으며, 파일 경로가 다르다면 상대 경로나 절대 경로를 이용한다. 그리고 get(url) 함수를 사용하면, 해당 URL을 브라우저에서 띄운다.

 

현재 url 얻기

 

print(driver.current_url)

 

브라우저 닫기

 

driver.close() # 현재 탭 닫기
driver.quit()  # 브라우저 닫기

 

브라우져 열기 옵션 넣기

 

크롬 브라우저를 열 때 넣을 수 있는 옵션을 셀레니움에서도 사용이 가능하다.

 

# 윈도우 사이즈
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('window-size=1920,1080')

driver = webdriver.Chrome('chromedriver.exe', options=options)
# 헤들리스
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('headless')

driver = webdriver.Chrome('chromedriver.exe', options=options)
# 창 최대화
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('start-maximized)

driver = webdriver.Chrome('chromedriver.exe', options=options)

# 또는
driver.maximize_window()

 

뒤로 가기 / 앞으로 가기

 

driver.back() # 뒤로 가기
driver.forward() # 앞으로 가기

 

탭 이동

 

driver.window_handles[0] #브라우저 탭 객체를 리스트로 반환. [0] 은 인덱싱. 첫번재 탭을 의미
driver.switch_to.window(driver.window_handles[0]) #첫번째 탭으로 이동
driver.switch_to.window(driver.window_handles[1]) #두번째 탭으로 이동
driver.switch_to.window(driver.window_handles[2]) #세번째 탭으로 이동

 

탭 닫기

 

driver.switch_to.window(driver.window_handles[0]) #닫을 탭으로 이동 후
driver.close()

 

https://selenium-python.readthedocs.io/index.html

 

Selenium with Python — Selenium Python Bindings 2 documentation

Note This is not an official documentation. If you would like to contribute to this documentation, you can fork this project in GitHub and send pull requests. You can also send your feedback to my email: baiju.m.mail AT gmail DOT com. So far 50+ community

selenium-python.readthedocs.io

 

728x90
반응형
LIST