inflearn logo
강의

Course

Instructor

[New Revised Edition] This is Real Crawling - Basic Course

스크롤이 끝까지 내려가지 않습니다!

4536

ljyoung414

1 asked

0

강의 잘 들었습니다! ㅎㅎ
다름이 아니라 무한 스크롤 코드를 작성하던 중, 스크롤 내리기가 여러 번 반복돼야 끝까지 내려가게 되는데 현재 코드를 그대로 작성하면 한번만 스크롤이 내려가고 멈추는 현상이 발생합니다!
혹시 스크롤 사이 페이지 로딩 시간이 문제인가 싶어 0부터 3까지 모두 넣어봤는데 계속 반복됩니다..
무슨 문제인지 모르겠어요ㅠ
 
항상 강의 깔끔하게 해주셔서 감사합니다!

스크롤 웹-크롤링 python

Answer 3

1

joonnight72421

# browser.find_element_by_css_selector('body').send_keys(Keys.END)
browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')

코드에 이상은 없는데, body tag 인식을 못한다는 오류가 뜨네요. Keys.END 대체 메소드 올립니다.

0

startcoding

body태그를 찾기 전에 time.sleep(2) 정도 줘서

로딩하는 시간을 줘보시기 바랍니다 ^^

0

ljyoung414

감사합니다 ! ㅎㅎ

0

sarangwk0715

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
browser = webdriver.Chrome(options=options)

url = 'https://www.naver.com/'

browser.get(url)  # 페이지 이동
browser.maximize_window()  # 창 최대화
browser.implicitly_wait(10)  # 로딩이 끝날때까지 10초간 대기(없어도됨)

element = browser.find_element(
    By.CLASS_NAME, 'nav.shop').click()  # 쇼핑몰 버튼을 찾아서 클릭

time.sleep(2)

search = browser.find_element(By.CLASS_NAME, '_searchInput_search_input_QXUFf')
search.click()  # 검색창으로 이동

search.send_keys('아이폰13')  # 검색어 입력
search.send_keys(Keys.ENTER)  # 검색버튼 클릭


 

# 스크롤 높이 가져옴
after_h = browser.execute_script("return document.body.scrollHeight")

while True:
    # 끝까지 스크롤 내리기
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

    # 대기
    time.sleep(1)

    # 스크롤 내린 후 스크롤 높이 다시 가져옴
    before_h = browser.execute_script("return document.body.scrollHeight")
    if before_h == after_h:
        break
    after_h = before_h

0

startcoding

안녕하세요.

코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.

 

우선 코드에서 오류가 있을 수 있으니 제가 드리는 코드와 비교해 보세요 :)

 

[02_셀레니움_무한스크롤.py]

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# 브라우저 생성
browser = webdriver.Chrome('C:/chromedriver.exe')
# mac 의 경우 /User/startcoding/Documents/chromedriver

# 웹사이트 열기
browser.get('https://www.naver.com')
browser.implicitly_wait(10) # 로딩이 끝날 때까지 10초까지는 기다려줌

# 쇼핑 메뉴 클릭
browser.find_element_by_css_selector('a.nav.shop').click()
time.sleep(2)

# 검색창 클릭
search = browser.find_element_by_css_selector('input.co_srh_input._input')
search.click()

# 검색어 입력
search.send_keys('아이폰 13')
search.send_keys(Keys.ENTER)

# 스크롤 전 높이
before_h = browser.execute_script("return window.scrollY")

# 무한 스크롤
while True:
    # 맨 아래로 스크롤을 내린다.
    browser.find_element_by_css_selector("body").send_keys(Keys.END)

    # 스크롤 사이 페이지 로딩 시간
    time.sleep(1)

    # 스크롤 후 높이
    after_h = browser.execute_script("return window.scrollY")
   
    if after_h == before_h:
        break
    before_h = after_h

# 상품 정보 div
items = browser.find_elements_by_css_selector(".basicList_info_area__17Xyo")

for item in items:
    name = item.find_element_by_css_selector(".basicList_title__3P9Q7").text
    try:
        price = item.find_element_by_css_selector(".price_num__2WUXn").text
    except:
        price = "판매중단"
    link = item.find_element_by_css_selector(".basicList_title__3P9Q7 > a").get_attribute('href')
    print(name, price, link)

0

ljyoung414

답변 감사합니다!

코드는 동일합니다. 스크롤이 1회만 실행되고 지속적인 스크롤이 되지 않는 것으로 보입니다.

현재 다른 method를 구글링하여 해결은 했습니다!

Live server 를 이용 해보고 싶은데 확장메뉴 설치가 막혀 있어요

0

62

2

'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)

0

38

1

import requests from bs4 import BeatifulSoup 이 단계에서 안 되네요

0

76

2

requests 관련 질문

1

136

2

설치 관련

0

131

2

vs code 결과출력이 안됩니다

0

143

1

크롤링 관련 질문입니다

0

210

2

word wrap 체크 후에도 콘솔 한줄로 출력되는현상

0

190

1

주피터에서 pip오류가 계속납니다

0

1084

3

강의 "requests, Beautifulsoup4 사용법 빠르게 알아보기"에서 질문이있습니다.

0

170

2

네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요

0

365

1

html주소를 다른 컴터에서도 접속하기

0

241

2

pandas 설치하는데 오류가 나서요

0

2705

1

실행오류

0

213

1

네이버쇼핑 무한스크롤 안되시는분들 모바일네이버로 실습해보세요

0

263

1

뉴스 페이지에 페이지 번호가 없는데 어떻게 가져오나요?

0

231

2

네이버 쇼핑에 팝업창이 뜨기 시작했어요 도와주세요 ㅠㅠ

0

721

3

셀레니움 실습 시 창이 자동 차단되면서 꺼집니다.

0

663

2

낮은 가격순을 클릭하는 문을 추가하고싶습니다.

0

303

2

pip는 내부 또는 외부명령 ,실행할 수 있는 프로그램

0

3388

2

이런오류는 어떤 오류인가요

0

659

1

창이 두개떠요/쇼핑검색도 안되요 ㅜ

0

333

2

약간 변태(?)같지만 해당 코드를 깔끔하게 함수로 리팩토링해보았습니다

0

338

2

과제 답안을 보지않고 스스로 구글링해서 만든 웹 크롤링 프로그램(10페이지 단위) 코드입니다.

0

757

2