inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2단계 - 나무태그 찾기

네이버 이미지 크롤링 무한 스크롤 처리. 밑으로 안 내려갑니다.

1105

Peace

작성한 질문수 1

1

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pyautogui
import os

# 검색어 입력.
keyword = keyword = pyautogui.prompt("검색어를 입력해주세요.")

# 저장 폴더 중복 검사 
pd_exists =  os.path.exists(f'{keyword}')

# 조건에 따른 저장 폴더 생성법 ①
if True == pd_exists:
    pass
else:
    os.mkdir(f'{keyword}')

# 조건에 따른 저장 폴더 생성법 ②
# if not pd_exists:
    # os.mkdir(f'{keyword}')

# 크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager

# 브라우저 자동 꺼짐 방지하기
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)

# 불필요한 에러 메세지 안보이게 하기
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])

# 크롬드라이버매니저를 통해서 최신 크롬드라이버를 자동으로 설치하고,
# service 객체를 만들어 변수에 저장.
service = Service(executable_path=ChromeDriverManager().install())

# 크롬 열고, 화면 최대화
browser = webdriver.Chrome(service=service, options=chrome_options)
browser.maximize_window()

# 검색어 입력했을때, 네이버 이미지 탭 결과 리스트창
browser.get(f"https://search.naver.com/search.naver?where=image&query={keyword}")

# 웹페이지가 로딩 될 때까지 10초 기다림. 뜨면 바로 10초 안채워도 넘어감.
browser.implicitly_wait(10)

# 무한 스크롤 처리
# 스크롤 내리기 전 위치
before_h = browser.execute_script("return window.scrollY")

# 무한스크롤
while True:
    #맨 아래로 스크롤 내리기
    browser.find_element(By.CSS_SELECTOR, "body.wrap-new.api_animation.tabsch.tabsch_image").send_keys(Keys.END)
    # 스크롤 사이 페이지 로딩 시간
    time.sleep(3)
    # 스크롤 후 높이
    after_h = browser.execute_script("return window.scrollY")

    if after_h == before_h:
        break
    before_h = after_h

전에 수업때 만들었던 무한스크롤 파일에선 잘 동작하는데 네이버 이미지 크롤링에서 시도하면 작동이 안됩니다. ㅠㅠ find_element(By. TAG_NAME, "body").send_keys(Keys.END)로 해도 스크롤이 밑으로 안 내려갑니다.

새해 복 많이 받으세요!

python 웹-크롤링

답변 1

0

스타트코딩

안녕하세요 수강생님!

제주도에 다녀오느라 답변이 늦었습니다 ㅠㅠ

수강생님이 주신 코드로 직접 실행해본 결과

스크롤이 잘 내려 갑니다.

 

혹시 재부팅 또는 vscode에서 다시 실행해 보시겠어요?

그리고 똑같이 안된다면 어떤 검색어를 하셨는지도 말씀 부탁드립니다.

셀레니움 환경설정 오류

0

51

2

네이버 로그인 관련

0

273

2

안녕하세요 셀레니움에 대해서 질문

0

87

1

크롤링 연습사이트 문의

0

97

2

선택자 질문

0

71

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

78

2

자동 로그인 질문

0

89

2

44강 제목, 링크

0

106

1

원하는 값이 없을 때

0

90

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

227

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

98

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

89

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

98

1

조건문 else 사용하지 않는 이유

0

76

2

셀레니움으로 접근할 수 없는 경우

0

95

2

웹페이지 변경

0

72

2

자바스크립트로 태그 선택 시 질문입니다.

1

64

2

수료증은 어떻게 받나요?

0

120

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

61

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

202

2