Python Selenium을 사용하여 웹 사이트 아래로 스크롤
때로는 웹 사이트에서 스크롤하는 것과 같이 브라우저에서 작업을 자동화하고 싶을 수 있습니다. Python에는 Selenium이라는 강력한 웹 자동화 도구가 있습니다.
웹 브라우저를 제어하고 특정 작업을 자동으로 수행할 수 있습니다. 웹 사이트에서 가로 및 세로로 자동으로 스크롤되는 스크립트를 작성할 수 있습니다.
Selenium 및 Chrome WebDriver 설치
Selenium을 설치하려면 다음 명령을 사용합니다.
#Python 3.x
pip install selenium
ChromeDriver는 Selenium WebDriver가 Chrome과 상호 작용하는 데 사용하는 또 다른 실행 파일입니다. Chrome 웹 브라우저에서 작업을 자동화하려면 ChromeDriver도 설치해야 합니다.
Chrome 브라우저의 버전에 따라 호환되는 드라이버를 선택해야 합니다. 다음은 Chrome 드라이버를 설치하고 구성하는 단계입니다.
- 이 링크를 클릭하세요. Chrome 브라우저의 버전과 운영 체제 유형에 따라 Chrome 드라이버를 다운로드합니다.
- Chrome 브라우저의 버전을 확인하려면 Chrome 오른쪽 상단 모서리에 있는 세 개의 점을 클릭하고 도움말을 클릭한 다음 Google Chrome 정보를 선택합니다. 정보 섹션에서 Chrome 버전을 확인할 수 있습니다.
- zip 파일의 압축을 풀고 Chrome 드라이버를 실행합니다.
Python Selenium을 사용하여 웹 사이트 아래로 스크롤
통사론:
driver.execute_script("window.scrollBy(x_pixels, y_pixels);")
여기서 x_pixels
는 가로로 스크롤할 픽셀 수(x축)를 나타내고 y_pixels
는 세로로 스크롤할 픽셀 수(y축)를 나타냅니다. 이 가이드에서는 x_pixels
가 0이 되도록 수직으로만 스크롤합니다.
지정된 픽셀로 아래로 스크롤
다음 코드에서 WebDriver 인스턴스를 만들고 Chrome 드라이버의 경로를 지정했습니다. 그런 다음 get()
메서드를 사용하여 대상 웹 사이트의 URL을 드라이버 인스턴스로 설정했습니다.
원하는 브라우저에서 대상 웹사이트를 엽니다. maximize_window()
를 사용하여 더 나은 그림을 위해 Chrome 창을 최대화했습니다.
Selenium에는 execute_script()
메소드를 통해 JavaScript 명령을 실행하는 기능이 있습니다. window.scrollBy()
메서드를 사용하여 자동으로 1000픽셀 아래로 스크롤하고 이 명령을 JavaScript 실행기에 전달했습니다.
웹 사이트는 자동으로 세로로 1000픽셀 아래로 스크롤됩니다.
예제 코드:
# Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, 1000);")
출력:
웹사이트 맨 아래로 스크롤
페이지의 전체 맨 아래로 스크롤하려고 한다고 가정합니다. document.body.scrollHeight
는 페이지의 총 높이를 픽셀 단위로 제공합니다.
이 높이를 아래로 스크롤할 픽셀 수로 지정합니다.
예제 코드:
# Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, document.body.scrollHeight);")
출력:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn