인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박종성님의 프로필 이미지
박종성

작성한 질문수

[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

무한 스크롤 처리하기

무한 스크롤 처리하기 강의에서 실행이 안 됩니다.

작성

·

45

·

수정됨

0

안녕하세요

 

무한 스크롤 처리하기 강의에서 실행이 안 됩니다.

06:45 부분입니다.

이 code 수정한 영상 다시 올리셔야 할 것 같습니다.

바쁘셔서 강의 영상 다시 촬영하시기 힘드시면

소스 수정해야 한다고 자막으로라도 올려주세요

처음 수강하는 사람 입장에서 시간 낭비가 심합니다.

부탁합니다.

 

last_height = driver.execute_script('return document.body.scrollHeight')

while True:

driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')

time.sleep(1)

new_height = driver.execute_script('return document.body.scrollHeight')

if new_height == last_height: break

last_height = new_height

 

강의에서 알려주신 대로 실행하면

한 번에 맨 마지막까지 scroll 됩니다.

강의에서 보여주시는 대로 되지 않습니다.

어떻게 해야 하는지 자세하게 알려주세요

 

 

 

 

 

답변 2

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

안녕하세요 코드에 문제가 있는게 아니라

컴퓨터나 사이트 환경에 따라서

천천히 스크롤이 되는것이 아니라 한번에 끝까지 스크롤이 될때가 있습니다 ㅎㅎ

 

생각해보면 끝까지 스크롤을 하는게 목적이니

문제가 없는 거겠지요..? ㅎㅎ

 

수강생님 수강하면서 불편한 점이 중간중간 생기는 것은

충분히 저도 동감합니다... ㅠㅠ 저도 다른 코딩 강의들을 때 그런적이 있었거든요

 

그런데 코딩이라는게 각자의 컴퓨터 환경에 따라,

그리고 어떻게 실습을 따라했는지에 따라

조금씩 다른 결과가 나올 수 있어요

 

이러한 부분들은 어느정도 감안하고 코딩강의를 듣는게

심적으로 편안하실거라고 생각합니다 🙂

저도 부탁드릴게요~~~

 

import time

# 스크롤 전 높이
last_height = driver.execute_script("return document.body.scrollHeight")

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

    # 잠시 대기
    time.sleep(1)

    # 스크롤 후 높이
    new_height = driver.execute_script("return document.body.scrollHeight")

    # 비교 (if, break)
    if new_height == last_height:
        break

    # 스크롤 전 높이 업데이트
    last_height = new_height

0

안녕하세요, 인프런 AI 인턴입니다.

박종성님께서 질문하신 무한 스크롤 관련 문제는 크롤링을 수행할 때 종종 발생하는 문제 중 하나입니다. 스크롤이 한 번에 최하단까지 이동하게 되는 것은 페이지에 로드 대기시간이 부족하거나, 페이지 구조에 따라 스크롤 이벤트에 반응하지 않아 발생할 수 있습니다.

무한 스크롤 처리를 위해 몇 가지 고려사항을 제공하겠습니다:

  1. 로딩 대기시간 조정: time.sleep(1)의 값을 더 늘려 보세요, 예를 들어 time.sleep(3) 또는 time.sleep(5)로 변경합니다. 페이지가 로드되는 동안 충분한 대기시간이 필요할 수 있습니다.

  2. 스크롤 위치 확인: 현재 사용 중인 scrollHeight 방식 외에 scrollY 방식을 이용해 스크롤 높이를 비교할 수 있는 방법도 있습니다:
    ”`python
    before_scroll = driver.execute_script(“return window.scrollY”)

while True:
driver.execute_script(“window.scrollTo(0, document.body.scrollHeight)”)
time.sleep(3)
after_scroll = driver.execute_script(“return window.scrollY”)
if before_scroll == after_scroll:
break
before_scroll = after_scroll
“`

  1. 스크립트의 정확성 확인: 사용 중인 scrollHeight가 실제 페이지 내에서 스크롤 높이를 정확히 측정하는지를 확인해 보셔야 합니다.

다음 링크에서 유사한 무한 스크롤 관련 질문과 답변을 참조할 수 있습니다:
- 네이버 이미지 크롤링 무한 스크롤 처리. 밑으로 안 내려갑니다.
- 셀레니움_for 문 질문

문제가 여전히 해결되지 않는다면, 강의 내 지식공유자께서 제공하신 코드를 한번 더 검토해보시거나, 페이지 구조가 변동되었는지 확인해 보는 것도 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박종성님의 프로필 이미지
박종성

작성한 질문수

질문하기