PROGRAMMING/Python

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

HYUNHP 2021. 10. 20. 19:32
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()에 대해 설명하고자 합니다.

감사합니다.

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

 

 

 

 

반응형