셀레니움 (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)
불러오기(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
'App Programming > Web Crawler' 카테고리의 다른 글
[Web Crawler] 셀레니움 (Selenium) (3) (0) | 2022.02.15 |
---|---|
[Web Crawler] 셀레니움 (Selenium) (2) (0) | 2022.02.15 |
[Web Crawler] BeautifulSoup으로 다양한 데이터 추출하기 (0) | 2022.02.14 |
[Web Crawler] HTML 기본태그 (6) (0) | 2022.02.14 |
[Web Crawler] HTML 기본태그 (5) (0) | 2022.02.14 |