이번에는 네이버 쇼핑 검색 후 결과 페이지의 최하단까지 스크롤하는 방법을 알아볼께요.
네이버 쇼핑 - 검색결과 페이지
위와 같이 검색결과 페이지는 한번에 모든 내용을 표시해주지 않아요
아래로 스크롤 할때마다 다음 목록을 새로 불러와 보여줍니다
파이썬 셀레니움(Selenium)을 활용해서 특정 키워드 검색 및 최하단까지 스크롤하는 방법을 알아볼께요
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import undetected_chromedriver as uc
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
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
from subprocess import CREATE_NO_WINDOW
import time
url = 'https://shopping.naver.com/home'
option = Options()
option.add_argument('--disable-gpu')
option.add_argument('--window-size=1920x1080')
option.add_argument('--start-maximized')
option.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36')
service = Service()
service.creation_flags = CREATE_NO_WINDOW
driver = uc.Chrome(service=service, options=option)
driver.maximize_window()
driver.implicitly_wait(10)
driver.get(url)
input_box = driver.find_element(By.CLASS_NAME, "_searchInput_search_text_3CUDs")
input_box.clear()
input_box.send_keys("아이폰 15")
input_box.send_keys(Keys.RETURN)
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(0.5)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
driver.quit()
코드를 실행하면 크롬 창이 실행되고 네이버 쇼핑 사이트에서 아이폰 15를 검색하여 검색결과 페이지의 최하단페이지까지 스크롤한 이후 창이 닫힙니다.
질문은 댓글창에 남겨주세요~
728x90
'플그래밍 > 파이써언' 카테고리의 다른 글
[파이썬] Selenium - 네이버 카페 인기글 제목 추출하기 (0) | 2024.02.02 |
---|---|
[파이썬] Selenium - 네이버 스포츠 일정 및 결과 크롤링하기 (0) | 2024.02.02 |
[파이썬] SSLError: HTTPSConnectionPool 에러 해결 방법 (0) | 2024.02.01 |
[파이썬] pip으로 Selenium 설치하기 (0) | 2024.01.28 |
파이썬 셀프(self)에 대해서 알아봤어요 (0) | 2024.01.23 |