안녕하세요 파이썬과 관련하여 추가적으로 필요한 정보가 있으시면,
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()에 대해 설명하고자 합니다.
감사합니다.
위 포스팅은 카카오 티스토리, 네이버 블로그에도 동일하게 업로드합니다.
'PROGRAMMING > Python' 카테고리의 다른 글
[PYTHON] 파이썬 정규식을 활용한 괄호와 괄호 안 문자열 삭제 또는 추출 (0) | 2021.10.26 |
---|---|
[PYTHON] 파이썬 웹 크롤링 (무한 스크롤 크롤링/SCROLL_DOWN) (0) | 2021.10.24 |
[PYTHON] 파이썬 이모지(emoji) 제거 (0) | 2021.10.19 |
[PYTHON] 파이썬 np.percentile 백분위수 구하기 (0) | 2021.10.15 |
[PYTHON] 파이썬 경고 메시지 숨기기(import warnings) (0) | 2021.10.14 |
댓글