반응형
유튜브는 유튜브 동영상을 내려도 내려도 계속 새로운 동영상이 나옵니다.
영원히 끝나지 않는 스크롤이 진행되지요.
하지만, 어쨌든 스크롤을 끝내고 크롤링을 진행해야 합니다.
따라서 적당히 내리는 방법을 알아야 합니다.
저는, 시간을 주고, 적당히 내리는 방법을 통해 코드를 구성하였습니다.
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium import webdriver
import datetime
위 모듈을 설치 및 import 해주세요. datetime이 핵심입니다.
seconds = time에서 times 부분에 원하는 시간(초 단위)을 입력하시면 됩니다.
start = datetime.datetime.now()
end = start + datetime.timedelta(seconds = times)
while True:
driver.find_element(by=By.CSS_SELECTOR, value="body").send_keys(Keys.END)
time.sleep(1)
if datetime.datetime.now() > end:
break
html = driver.page_source
time.sleep(2) #스크롤 하는 동안의 로딩시간
이 코드가 잘 되지 않는 분들은 scrollTo 함수를 통해 스크롤을 내릴 수 있습니다.
start = datetime.datetime.now()
end = start + datetime.timedelta(seconds = 30)
while True:
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
time.sleep(1)
if datetime.datetime.now() > end:
break
'파이썬 > 파이썬 셀레니움, Request' 카테고리의 다른 글
Python) VS code sklearn 에러, 설치 방법, pip install 꿀팁 (0) | 2022.12.02 |
---|---|
파이썬 문자 내용 말고 양 쪽 공백 다 제거하기, strip(), replace (1) | 2022.11.18 |
python selenium에 beautifulsoup 적용하기 (0) | 2022.11.05 |
GUI Entry에 특정 값 입력 후, 값을 프로그램에 저장할 때 (0) | 2022.11.05 |
Python파일을 exe 파일로 만들기, disk 폴더 안이 아무것도 없을 때 (0) | 2022.10.14 |
댓글