HOWTO · Python

Python Selenium을 사용하여 웹 사이트 아래로 스크롤

이 자습서는 Python에서 Selenium을 사용하여 웹 사이트를 아래로 스크롤하는 작업을 자동화하는 방법을 보여줍니다.

이 페이지의 내용

때로는 웹 사이트에서 스크롤하는 것과 같이 브라우저에서 작업을 자동화하고 싶을 수 있습니다. Python에는 Selenium이라는 강력한 웹 자동화 도구가 있습니다.

웹 브라우저를 제어하고 특정 작업을 자동으로 수행할 수 있습니다. 웹 사이트에서 가로 및 세로로 자동으로 스크롤되는 스크립트를 작성할 수 있습니다.

Selenium 및 Chrome WebDriver 설치

Selenium을 설치하려면 다음 명령을 사용합니다.

#Python 3.x
pip install selenium

ChromeDriver는 Selenium WebDriver가 Chrome과 상호 작용하는 데 사용하는 또 다른 실행 파일입니다. Chrome 웹 브라우저에서 작업을 자동화하려면 ChromeDriver도 설치해야 합니다.

Chrome 브라우저의 버전에 따라 호환되는 드라이버를 선택해야 합니다. 다음은 Chrome 드라이버를 설치하고 구성하는 단계입니다.

  1. 이 링크를 클릭하세요. Chrome 브라우저의 버전과 운영 체제 유형에 따라 Chrome 드라이버를 다운로드합니다.
  2. Chrome 브라우저의 버전을 확인하려면 Chrome 오른쪽 상단 모서리에 있는 세 개의 점을 클릭하고 도움말을 클릭한 다음 Google Chrome 정보를 선택합니다. 정보 섹션에서 Chrome 버전을 확인할 수 있습니다.
  3. 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);")

출력:

셀레늄 아래로 스크롤