Selenium은 파이썬에서 웹 브라우저를 자동화하고 웹 사이트를 제어하는 데 사용되는 강력한 도구입니다.
크롬 웹드라이버를 활용하면 Selenium을 통해 크롬 브라우저를 제어하고, 웹 사이트에서 필요한 데이터를 다운로드할 수 있습니다.
아래는 이를 수행하기 위한 단계입니다.
1. Selenium 설치: 먼저, Selenium 라이브러리를 설치해야 합니다. 파이썬의 패키지 관리자인 pip를 사용하여 다음 명령을 실행합니다.
pip install selenium
2. 크롬 웹드라이버 다운로드: Selenium은 크롬 웹드라이버를 사용하여 크롬 브라우저를 제어합니다. 따라서 사용 중인 크롬 브라우저의 버전에 맞는 크롬 웹드라이버를 다운로드해야 합니다. 다음 링크에서 필요한 버전을 다운로드할 수 있습니다.
3. Selenium 코드 작성: 다음은 Selenium과 크롬 웹드라이버를 사용하여 웹 사이트에서 데이터를 다운로드하는 예제 코드입니다. 코드를 실행하기 전에 크롬 웹드라이버의 경로를 지정해야 합니다. 아래 코드를 참고하세요.
from selenium import webdriver
# 크롬 웹드라이버 경로 설정
webdriver_path = '크롬 웹드라이버의 경로를 여기에 입력하세요'
# 크롬 웹드라이버 인스턴스 생성
driver = webdriver.Chrome(webdriver_path)
# 웹 사이트 접속
driver.get('웹 사이트 주소를 여기에 입력하세요')
# 데이터 다운로드 등 필요한 작업 수행
# ...
# 크롬 웹드라이버 종료
driver.quit()
4. 웹 사이트 조작 및 데이터 다운로드: Selenium을 활용하여 필요한 작업을 수행하고 데이터를 다운로드할 수 있습니다. 예를 들어, 웹 페이지에서 특정 요소를 찾고 클릭하는 경우 다음과 같이 코드를 작성할 수 있습니다.
from selenium import webdriver
from selenium.webdriver.common.by import
아래 코드는 실제 프로젝트에서 적용했던 코드입니다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time
config = {
'EMAIL': '아이디',
'PASSWORD': '비번'
}
login_url = '홈페이지 주소'
def main():
# 크롬 옵션
chrome_options = Options()
chrome_options.add_experimental_option("detach", False)
# 다운로드 경로 변경
download_path = r"C:\다운로드" # 다운로드 경로 지정
prefs = {"download.default_directory" : download_path}
chrome_options.add_experimental_option("prefs", prefs)
# 크롬 드라이버가 위치한 경로
chrome_driver_path = 'apps/chromedriver.exe'
# 서비스 객체 생성
service = Service(chrome_driver_path)
# WebDriver 생성
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.get(login_url)
# 크롬 창 크기 최대화
driver.maximize_window()
# ID 입력
elem = driver.find_element(By.XPATH, '//*[@id="username"]')
elem.clear()
elem.send_keys(config['EMAIL'])
# PW 입력
elem = driver.find_element(By.XPATH, '//*[@id="password"]')
elem.clear()
elem.send_keys(config['PASSWORD'])
elem.send_keys(Keys.RETURN)
time.sleep(5)
# 관리 페이지 진입
elem = driver.find_element(By.XPATH, '//*[@id="menu-container"]/ul/div[1]/div[2]/div/div/div/li[12]/a')
elem.click()
time.sleep(10)
# 브라우저 맨 아래로 이동
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
# 목록 다운로드 옵션 펼치기
elem = driver.find_element(By.XPATH, '//*[@id="submenuBtn"]')
elem.click()
# 현재 페이지 다운로드
# elem = driver.find_element(By.XPATH, '//*[@id="currentDownload"]')
# elem.click()
# time.sleep(10)
# 전체 페이지 다운로드
elem = driver.find_element(By.XPATH, '//*[@id="totalDownload"]') #전체 페이지 다운로드 선택
elem.click()
time.sleep(5)
elem = driver.find_element(By.CLASS_NAME, "btn_aaa") # 관리페이지 이동
elem.click()
time.sleep(5)
elem = driver.find_element(By.CLASS_NAME, "btn_bbb") # 다운로드
elem.click()
time.sleep(5)
driver.close()
if __name__ == '__main__':
main()
다운로드 실행 하면 새로운 창이 뜨는데 거기에 맞게끔 코드 작성한 부분도 있으니 참고바랍니다.
개발 환경 설정
IDE : Pycharm
언어 : Python 3.11
라이브러리 설정
셀레니움(selenium), 크롬 웹드라이버