본문 바로가기

BLOG/웹크롤링

[웹크롤링] 자동으로 스크롤 내려가게 하는 방법

예를 들어, 네이버 홈페이지에 키워드를 입력하고 관련 블로그 글들을 크롤링할 때, 딱 30개의 블로그만 처음에 보이는데요, 그 이후에 따로 스크롤을 내리지 않으면 30개까지만 크롤링을 하고 멈추게 됩니다.

 

따라서 만약 30개 이상의 글들을 크롤링하려면 스크롤을 중간 중간에 내리게 하는 코드를 입력해야 하는데요, 이를 도와주는 함수가 바로 execute_script() 합수입니다.

밑에 코드를 보면서 설명하도록 하겠습니다.

 

 

- execute_script("window.scrollTo( );") : 스크롤하기

execute_Script("window.scrollTo( );") 함수는 해당 픽셀만큼 아래로 화면을 이동시키는 함수인데요,

만약 500픽셀만큼 아래로 이동하고 싶다면 execute_Script("window.scrollTo(0, 500);") 이라고 입력하면 된답니다.

 

해당 코드를 사용하기 앞서, 웹 드라이버 설정을 해주어야 하는데요,

아래와 같이 설정을 해주도록 하겠습니다.

 

path = "c:/temp/chromedriver_240/chromedriver.exe"   ###자신의 chomedriver의 경로 위치
driver = webdriver.Chrome(path)

 

웹드라이버를 'driver' 라는 변수에 저장해주었는데요, 각자 코드에 맞게 입력하시면 됩니다.

driver를 설정해주었다면 아래처럼 코드를 입력하면 됩니다.

 

driver.execute_script("window.scrollTo(0,500);")

 

 

한번 위 코드를 사용해서 블로그 페이지에서 스크롤이 잘 되는지 확인해보겠습니다.

 

from bs4 import BeautifulSoup     
from selenium import webdriver

path = "c:/temp/chromedriver_240/chromedriver.exe"   ###자신의 chomedriver의 경로 위치
driver = webdriver.Chrome(path)

driver.get("https://search.naver.com/search.naver?where=view&sm=tab_jum&query=%EC%97%AC%ED%96%89")

 

위 코드를 실행하면 아래와 같이 '여행'을 키워드로 한 블로그 글들이 나열된 페이지를 볼 수 있습니다.

 

 

그리고 아래 코드를 실행해보겠습니다.

 

driver.execute_script("window.scrollTo(0,5000);")

 

 

그 결과, 위 이미지에서 오른쪽 스크롤 바가 내려간 것처럼 자동으로 스크롤이 내려가졌음을 확인할 수 있습니다.