본문 바로가기
PROGRAMMING/Python

[PYTHON] 파이썬 Selenium 웹페이지 스크롤하기

by HYUNHP 2021. 10. 20.
728x90
반응형

안녕하세요 파이썬과 관련하여 추가적으로 필요한 정보가 있으시면,
DATA101에서 확인 가능하십니다.

감사합니다.


 

안녕하세요, HELLO

이번에는 PYTHON selenium을 활용해서 동적 페이지를 크롤링할 때,

웹 페이지를 스크롤 다운(scroll down)하여, 웹페이지 내릴 일이 있습니다.

이번 코드는 이전에 공유한 "[PYTHON] 크롤링_유튜브 (COLDPLAY X BTS)"를 참조합니다.

 


1. 소스 코드

2. 코드 설명


1. 개요

- PAGE DOWN 횟수를 활용한 웹 페이지 scroll down

 

# library import
from tqdm.auto import tqdm
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chrome_driver_path = r'크롬 파일 위치'

driver= Chrome(executable_path = chrome_driver_path)
wait = WebDriverWait(driver, 20)

# page down 횟수 parameter
repeat = 5 

# END 반복 실행
실행 횟수 체크
 for item in tqdm(range(repeat)): # END버튼 반복 횟수
        wait.until(EC.visibility_of_element_located((By.TAG_NAME, "body"))).send_keys(Keys.END)
        time.sleep(1) # END버튼 클릭 이후, 1초 대기 후, 다시 END 버튼 진행

 


 

2. 코드 설명

■ 라이브러리 tqdm

- 함수가 적용되는 시간을 체크

□ wait.until(EC.visibility_of_element_located((By.TAG_NAME, "body"))).send_keys(Keys.END)

■ wait = WebDriverWait(driver, sec)

- 드라이브에서 최대로 대기할 수 있는 시간 설정 (default = sec)

- 여기서는 20초로 설정

■ until()

- 드라이브에서 최대로 대기할 수 있는 시간 설정 (default = sec)

■ EC

- 드라이브 내에서 다음으로 오는 기능들을 진행

- 검색, 클릭 등

■ visibility_of_element_located((By.TAG_NAME, "body"))

- HTML 태그 이름이 'body'의 위치를 설정

■ send_keys(Keys.END)

- 설정된 위치에 END 키버튼을 실행

 


■ 마무리

반복 횟수를 지정해서 웹페이지 스크롤 다운에 대해서 살펴봤습니다.

이후에는 페이지를 계속해서 내리는 infinite_loop()에 대해 설명하고자 합니다.

감사합니다.

위 포스팅은 카카오 티스토리, 네이버 블로그에도 동일하게 업로드합니다.

 

 

 

 

반응형

댓글