• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

21.12.07 11:45 작성 조회수 148

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

안녕하세요.

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

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

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