강의

멘토링

커뮤니티

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

앙앙기모님의 프로필 이미지
앙앙기모

작성한 질문수

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

BeautifulSoup 사용법 및 간단 웹 파싱 실습(2) - 네이버, 인프런

네이버 이미지 셀리니움으로 추출 시

작성

·

232

0


while loop :
    count += 1
    #셀레니움 동적랜더링 스크롤내리기

    #스크롤을 가장 아래로 내림
    browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")

    # 페이지 로딩 대기
    time.sleep(interval)

    # 현재 문서 높이를 가져와서 저장

    curr_height = browser.execute_script("return document.body.scrollHeight")
    # if curr_height == prev_height :
    #     break
    if count >= 2 :
        loop = False

    prev_height = curr_height
print("스크롤 완료")
#스크롤 완료 스크린샷 찍기
browser.get_screenshot_as_file("NaverIMG_Animal.png")
   
img_len = len(browser.find_elements_by_css_selector('div._listGrid > div._grid > div '))
for idx , img in enumerate(range(0 , img_len)) :
    # img_list = browser.find_elements_by_css_selector('div._listGrid > div._grid > div ')
    img_list   = browser.find_elements_by_css_selector("div.photo_tile > div.tile_item")
    # try :
    #     elem = WebDriverWait(browser,5).until(
    #         EC.presence_of_element_located((By.CSS_SELECTOR , "div._listGrid > div._grid > div"))
    #     )
     # except TimeoutError as time :
    #     pass        
    if  img_list[idx].find_element_by_css_selector("div.thumb > a.link_thumb > img._image") : # img._image 태그가 있는 경우
        img_link = img_list[idx].find_element_by_css_selector("div.thumb > a.link_thumb > img._image").get_attribute("src")
        print(idx + 1 ,"-" ,img_link)
        print()


browser.quit()
지금 최초 데이터부터 10번째 데이터까지 이미지를 추출하는데 그 이상부터 no such element 에러가 납니다.네이버 에서 막은건가요?

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

안녕하세요.

대기 시간을 충분히 줘서 다음 이미지가 렌더링 될때까지 기다려 보고

엘리먼트가 또 있는지 확인해 보세요.

저도 소스코드 확인해 보겠습니다.

앙앙기모님의 프로필 이미지
앙앙기모

작성한 질문수

질문하기