inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

네이버 지도 크롤링 iframe 창 클릭 관련해서 문의드립니다.

1549

김민재

작성한 질문수 1

1

계속 고민하다가 답을 못찾아서 문의드립니다.

우선 접근한 url은 iframe으로 올라오는 url에 대해 직접 접근하였습니다.

문제는 스크롤 다운이 안되네요. 다른 예제들로는 잘 내려갔었는데..

의심되는 원인으로는

  1. 아래 id값을 통해 창이 제대로 클릭되지 않는 케이스입니다.

browser.find_element(By.CSS_SELECTOR, "#_pcmap_list_scroll_container").click()
  1. 스크롤 다운이 제대로 되지 않는 경우

 

    browser.execute_script("window.scrollTo(0, document.documentElement.scrollHeight)") #이부분

1번일 가능성을 높게보는데, 이것저것 해봤는데 정답을 못찾았네요. 혹시 원인 유추 가능할까요?

전체 소스코드는 아래와 같습니다.

감사합니다.

 

from openpyxl import Workbook
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time

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

url = "https://pcmap.place.naver.com/restaurant/list?query=성수동+파스타"

service = Service(executable_path=ChromeDriverManager().install())
browser = webdriver.Chrome(service=service, options=chrome_options)
browser.implicitly_wait(10)
browser.maximize_window()
browser.get(url)

browser.find_element(By.CSS_SELECTOR, "#_pcmap_list_scroll_container").click()  #이부분
before_h = browser.execute_script("return document.documentElement.scrollHeight") 

print(before_h)
for i in range(0,10):
    browser.execute_script("window.scrollTo(0, document.documentElement.scrollHeight)") #이부분
    time.sleep(1)
    after_h = browser.execute_script("return document.documentElement.scrollHeight")
    print(after_h)
    if after_h == before_h:
        break
    before_h = after_h

restaurant_names = browser.find_elements(By.CSS_SELECTOR, ".place_bluelink.TYaxT") 
for restaurant_name in restaurant_names:
    print(restaurant_name.text)

 

웹-크롤링 python

답변 1

0

스타트코딩

iframe 안쪽으로 들어 간다음에 #_pcmap_list_scroll_container를 클릭해야 합니다.

영상에 설명을 해놓았으니 참고해 보세요 ^^

셀레니움 환경설정 오류

0

46

2

네이버 로그인 관련

0

256

2

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

0

85

1

크롤링 연습사이트 문의

0

96

2

선택자 질문

0

71

2

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

0

76

2

자동 로그인 질문

0

86

2

44강 제목, 링크

0

105

1

원하는 값이 없을 때

0

89

2

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

0

227

2

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

0

100

2

글목록 추출하기

0

97

2

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

0

88

2

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

0

80

2

강의 커리큘럼 질문

0

98

1

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

0

76

2

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

0

95

2

웹페이지 변경

0

70

2

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

1

64

2

수료증은 어떻게 받나요?

0

120

2

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

0

60

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

201

2