inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Phiên bản mới sửa đổi] Đây mới thực sự là Crawling - Phần cơ bản

셀레니움 csv 오류

992

itibeau

1 câu hỏi đã được viết

1

안녕하세요. 강의 잘 듣고 있습니다.
기본편 셀레니움 빨리 마치고 실전편으로 넘어가고 싶은데 오류로 넘어가질 못하고 있어요.
제 오류는 csv 를 막상 열어보면 한 줄 밖에 못 가지고 온다는 겁니다.
끝까지 스크롤 된게 보이는데 저장파일을 열면 한 줄 밖에 추출을 못했네요.
에러 문구는 아래와 같습니다.
C:\startcoding_crawling>[2548:20056:0320/181443.565:ERROR:gpu_init.cc(440)] Passthrough is not supported, GL is disabled, ANGLE is
 
정말 재미있게 배우고 있어요.
실전편 강의도 기대하고 있습니다.
감사합니다.

csv for문 웹-크롤링 python

Câu trả lời 2

1

itibeau

답변 감사드려요. 그런데 제가 이미 강의 보고 기재한 거랑 동일해요.

해결하고 다음으로 넘어가고 싶은데 넘 답답하네요.

혹시 문제가 어딘지 봐주실 수 있으실까요?

Chrome 드라이버는 Chrome 설정정보인 99로 받았습니다.

혹시 이거에 따라 달리 적용해야 하는 부분이 있을까요?

바쁘실텐데 부탁드려요.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import csv

# 브라우저 생성
browser = webdriver.Chrome('c:/chromedriver.exe')

# 웹사이트 열기
browser.get('https://www.naver.com')
browser.implicitly_wait(10)  # 로딩이 끝날 때까지 10초까지는 기다려줌
# 쇼핑메뉴 클릭
browser.find_element_by_css_selector('a.nav.shop').click()
time.sleep(2) #셀레니움은 다소 올래걸림

# 검색창 클릭
search=browser.find_element_by_css_selector('input.co_srh_input._input')
search.click()

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

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

# 무한 스크롤
while True:
    # 맨 아래로 스크롤을 내린다.
    browser.find_element_by_css_selector("body").send_keys(Keys.END)

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

    # 스크롤 후 높이
    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='')
    csvwriter = csv.writer(f)
    # 상품 정보 div
    items = browser.find_elements_by_css_selector(".basicList_info_area__17Xyo")

    for item in items:
        name = item.find_element_by_css_selector(".basicList_title__3P9Q7").text
        try:
            price = item.find_element_by_css_selector(".price_num__2WUXn").text
        except:
            price = "판매중단"
        link = item.find_element_by_css_selector(".basicList_title__3P9Q7 > a").get_attribute('href')
    print(name, price, link)

    # 데이터 쓰기
    csvwriter.writerow([name, price, link])

    #파일 닫기
    f.close()

0

startcoding

잘 보시면, 

        print(name, price, link)



        # 데이터 쓰기

        csvwriter.writerow([name, price, link])

이 부분이 들여쓰기(indent)가 빠져 있습니다 ^^

Tab을 눌러서 들여쓰기를 만들어 주세요

0

itibeau

강사님, 정말 최고세요~바쁘실텐데 오류 찾아주시고,,,감사합니다~^^

실전편도 열심히 들을게요~

0

startcoding

안녕하세요.

코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.

 

우선, 해당 메시지는 에러가 아닙니다. 

아마도 작성하신 코드와 강의영상 코드가 달라서 한 줄 밖에 못가져오는 것 같네요.

 

아래 코드로 확인해 보시기 바랍니다 ^^

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import csv

url = "https://www.naver.com"
browser = webdriver.Chrome('C:/chromedriver.exe')
browser.get(url)
browser.implicitly_wait(10)

# 쇼핑 메뉴 클릭
browser.find_element_by_css_selector("a.nav.shop").click()
time.sleep(2)

# 검색창 클릭
search = browser.find_element_by_css_selector('input.co_srh_input._input')
search.click()

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

# 스크롤 전 높이
before_h = browser.execute_script("return document.body.scrollHeight")

# 무한 스크롤
while True:
    # 맨 아래로 스크롤 내린다.
    browser.find_element_by_css_selector("body").send_keys(Keys.END)

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

    # 스크롤 후 높이
    after_h = browser.execute_script("return document.body.scrollHeight")
    if after_h == before_h:
        break
    before_h = after_h

# 파일 생성
f = open(r"C:\source\startcoding\startcoding_crawling\03_네이버_쇼핑_크롤링\data.csv", 'w', encoding='CP949', newline='')
csvWriter = csv.writer(f)

# 상품 정보 div
items = browser.find_elements_by_css_selector(".basicList_info_area__17Xyo")

for item in items:
    name = item.find_element_by_css_selector(".basicList_title__3P9Q7").text
    try:
        price = item.find_element_by_css_selector(".price_num__2WUXn").text
    except:
        price = "판매중단"
    link = item.find_element_by_css_selector(".basicList_title__3P9Q7 > a").get_attribute('href')
    print(name, price, link)
    csvWriter.writerow([name, price, link])

f.close()

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

0

62

2

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

0

38

1

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

0

76

2

requests 관련 질문

1

136

2

설치 관련

0

131

2

vs code 결과출력이 안됩니다

0

143

1

크롤링 관련 질문입니다

0

210

2

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

0

190

1

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

0

1084

3

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

0

170

2

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

0

365

1

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

0

241

2

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

0

2705

1

실행오류

0

214

1

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

0

263

1

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

0

231

2

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

0

721

3

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

0

663

2

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

0

303

2

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

0

3388

2

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

0

659

1

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

0

333

2

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

0

338

2

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

0

758

2