๋ฌดํ์คํฌ๋กค ํ์ด์ง์์ ํฌ๋กค๋ง์ ํ ์ผ์ด ์๊ฒผ๋ค.
๋ฌดํ์คํฌ๋กค ํ์ด์ง์์ ํญ๋ชฉ์ ๋ชฉ๋ก์ ๋ชจ๋ ์์งํ๊ธฐ ์ํด์๋ ์คํฌ๋กค ๋ฐ๋ฅผ ๋งจ ๋๊น์ง ๋ด๋ ค์ผํ๋ค.
๋ฐ๋ผ์ ํ์ด์ง๋ฅผ ๋ด๋ ค๋ ๊ณ์ํด์ ์๋ก์ด ๋ด์ฉ์ด ๋ก๋ฉ๋๋ ๋ฌดํ์คํฌ๋กค ์นํ์ด์ง์์ ์คํฌ๋กค ๋ฐ๋ฅผ ๊ณ์ํด์ ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ, Keys.PAGE_DOWN๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
1. ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์จ๋ค.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
2. Keys.PAGE_DOWN์ ์ฌ์ฉํ์ฌ ํ์ด์ง ๋งจ ๋์ ๋๋ฌํ ๋๊น์ง ์คํฌ๋กค ๋ฐ๋ฅผ ๋ด๋ฆฐ๋ค.
last_count = len(driver.find_elements(By.CSS_SELECTOR, 'a.contents__title')) # ํ์ฌ ํ์ด์ง์ ๋ก๋๋ ๋ฆฌ๋ทฐ ๋งํฌ ์
while True:
body = driver.find_element(By.TAG_NAME, 'body')
body.send_keys(Keys.PAGE_DOWN)
time.sleep(1)
new_count = len(driver.find_elements(By.CSS_SELECTOR, 'a.contents__title'))
# ๋ง์ฝ ์๋ก์ด ๋งํฌ๊ฐ ๋ ์ด์ ๋ก๋๋์ง ์๋๋ค๋ฉด ์ข
๋ฃ
if new_count == last_count:
print("๋ ์ด์ ์คํฌ๋กคํ ์ ์์ต๋๋ค.")
break
last_count = new_count # ๊ฐ์ ์
๋ฐ์ดํธ
body = driver.find_element(By.TAG_NAME, 'body')๋ฅผ ์ฌ์ฉํ์ฌ body๋ฅผ ์ ํํ ์ดํ, send_keys ํจ์๋ฅผ ํตํด์ page down ํค๋ฅผ ๋๋ฅด๋ ๊ฒ๊ณผ ๋์ผํ ํจ๊ณผ๋ฅผ ์ค๋ค.
์ด๋, ๋ฌดํ๋ฃจํ๋ฅผ ์ฌ์ฉํด์ ๊ณ์ํด์ ์คํฌ๋กค์ ๋ด๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฌดํ๋ฃจํ ํ์ถ ์กฐ๊ฑด์ ์ค์ ํด์ผ ํ๋ค.
๋๋ ์คํฌ๋กค์ ๋ด๋ ค๋ content์ ๊ฐ์๊ฐ ๋ฐ๋์ง ์์ ๋ ๋ฌดํ๋ฃจํ๋ฅผ ํ์ถํ ์ ์๋๋ก ์กฐ๊ฑด์ ์ค์ ํ์๋ค.
time.sleep(1)์ ํ์ด์ง ๋ก๋ฉ์ ๋๋ ์ด๊ฐ ๊ฑธ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ ํ ๊ฐ์ด๋ค.