inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 기본편

안녕하세요. 네이버 쇼핑 상품 정보 수집 강의 중 에러 문의

476

wjdqnscks6

작성한 질문수 1

1

from selenium import webdriver
from selenium.webdriver.common.keys import Keys  #검색어 입력Import시키기 
import time

#브라우저 생성
browser = webdriver.Chrome('C:/chromedriver.exe')   #크롬 드라이버 저장된 경로 넣기

#웹사이트 열기
browser.get('https://www.naver.com') 

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

#웹사이트 로딩이 끝날 떄까지 10초까지 기다리기(브라우저가 열려야 메뉴를 클릭하니까!)
browser.implicitly_wait(10)  # 로딩이 끝날 때까지 10초까지는 기다려줌

#쇼핑 메뉴 클릭하기  (find~ : 해당되는 한개 데이터만 가져옴)
browser.find_element_by_css_selector('a.nav.shop').click()

time.sleep(2)  #시스템 자체를 2초동안 멈춤  (browser.implicitly_wait()과 차이!)

#검색창 클릭하기
search = browser.find_element_by_css_selector('input._searchInput_search_text_3CUDs')
search.click()

#검색어 입력
search.send_keys('아이폰 13')
search.send_keys('Keys.ENTER')

#스크롤 전 높이
before_h = browser.execute_script("return window.scrollY") #현재 스크롤된 높이를 계산해줌 (0~)

#무한 스크롤
while True:   #무한 반복문
    # 맨 아래로 스크롤을 내린다. (네이버 쇼핑은 스크롤 숨겨져 있음!)
    browser.find_element_by_css_selector("body").send_Keys(Keys.END)

    # 스크롤 사이 페이지 로딩 시간
    time.sleep(2)

    #스크롤 후 높이
    after_h = browser.execute_script("return window.scrollY")

    if after_h == before_h:
        break
    before_h = after_h

#파일 생성
f = open(r"C:\Startcoding_Crawling\03.네이버_쇼핑 크롤링\data.csv",'w',encoding='CP949',newline='')  #'w' : 쓰기모드, 'encoding' : 인코딩 안하면 깨짐, 'newline' : 윈도우 경우 줄바꿈 자동으로 들어가므로 없애주기

csvWriter = csv.writer(f)

#상품 정보 div
items = browser.find_element_by_css_selector(".basicList_info_area__TWvzp")

#반복문으로 아이템 정보 저장
for item in items:
    name - item.find_element_by_css_selector("basicList_title__VfX3c").text #아이템 타이틀 
    try:  #아이템 가격이 없고 다른 내용이 있을 떄!!!(ex."판매불가")   많이 쓰니까 알아두기!!
        price = item.find_element_by_css_selector("basicList_price_area__K7DDT").text #아이템 가격 (부모태그)
    except:
        price = "판매중단"
    link = item.find_element_by_css_selector("basicList_link__JLQJf > a").get_attribute('href') #아이템 가격 링크 (자식태그)
    print(name, price, link)
    
    #데이터 쓰기
    csvWriter.writerow([name,price,link])

#파일 닫기
f.close()

 

error.png

안녕하세요. 먼저 좋은 강의 해주셔서 감사합니다.

강의를 들으며 실습하던 중 2가지 에러 및 문의가 생겨서 문의글 올립니다...

  1. 네이버 쇼핑 넘어가기도 전에 네이버 창이 종료되어버립니다.. 셀레니움 4.0 강의도 듣고 했는데도 마찬가지네요...

  2. csv, name 정의가 안되어있다고 뜨는데 왜이러는거죠ㅠㅠ변수인데 왜 이렇게 뜨는지 모르겠네요ㅠㅠ

웹-크롤링 python

답변 1

0

스타트코딩

안녕하세요!!

수강생님 오타 때문에 발생한 오류로 보입니다.

 

  1. import csv 를 하지 않은 것으로 예상되고

  2. name - 가 아니라 name = 입니다.

 

지금 내가 타자를 치긴 하는데 왜 이렇게 쓰는지 잘 모르겠다면,

파이썬 기초 문법을 조금 더 다루고 크롤링을 배워 보시는 것이 어떨까요??

아래는 제 파이썬 기초부터 중급까지 실력을 업그레이드 할 수 있는 강의입니다.

 

Live server 를 이용 해보고 싶은데 확장메뉴 설치가 막혀 있어요

0

69

2

'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)

0

41

1

import requests from bs4 import BeatifulSoup 이 단계에서 안 되네요

0

80

2

requests 관련 질문

1

138

2

설치 관련

0

132

2

vs code 결과출력이 안됩니다

0

145

1

크롤링 관련 질문입니다

0

212

2

word wrap 체크 후에도 콘솔 한줄로 출력되는현상

0

192

1

주피터에서 pip오류가 계속납니다

0

1090

3

강의 "requests, Beautifulsoup4 사용법 빠르게 알아보기"에서 질문이있습니다.

0

173

2

네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요

0

368

1

html주소를 다른 컴터에서도 접속하기

0

244

2

pandas 설치하는데 오류가 나서요

0

2715

1

실행오류

0

216

1

네이버쇼핑 무한스크롤 안되시는분들 모바일네이버로 실습해보세요

0

264

1

뉴스 페이지에 페이지 번호가 없는데 어떻게 가져오나요?

0

234

2

네이버 쇼핑에 팝업창이 뜨기 시작했어요 도와주세요 ㅠㅠ

0

727

3

셀레니움 실습 시 창이 자동 차단되면서 꺼집니다.

0

668

2

낮은 가격순을 클릭하는 문을 추가하고싶습니다.

0

305

2

pip는 내부 또는 외부명령 ,실행할 수 있는 프로그램

0

3407

2

이런오류는 어떤 오류인가요

0

661

1

창이 두개떠요/쇼핑검색도 안되요 ㅜ

0

334

2

약간 변태(?)같지만 해당 코드를 깔끔하게 함수로 리팩토링해보았습니다

0

338

2

과제 답안을 보지않고 스스로 구글링해서 만든 웹 크롤링 프로그램(10페이지 단위) 코드입니다.

0

763

2