-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
셀레니움 csv 오류
22.03.20 18:28 작성 조회수 832
1
안녕하세요. 강의 잘 듣고 있습니다.
기본편 셀레니움 빨리 마치고 실전편으로 넘어가고 싶은데 오류로 넘어가질 못하고 있어요.
제 오류는 csv 를 막상 열어보면 한 줄 밖에 못 가지고 온다는 겁니다.
끝까지 스크롤 된게 보이는데 저장파일을 열면 한 줄 밖에 추출을 못했네요.
에러 문구는 아래와 같습니다.
C:\startcoding_crawling>[2548:20056:0320/181443.565:ERROR:gpu_init.cc(440)] Passthrough is not supported, GL is disabled, ANGLE is
정말 재미있게 배우고 있어요.
실전편 강의도 기대하고 있습니다.
감사합니다.
답변을 작성해보세요.
1
itibeau
질문자2022.03.24
답변 감사드려요. 그런데 제가 이미 강의 보고 기재한 거랑 동일해요.
해결하고 다음으로 넘어가고 싶은데 넘 답답하네요.
혹시 문제가 어딘지 봐주실 수 있으실까요?
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()
스타트코딩
지식공유자2022.03.25
잘 보시면,
print(name, price, link)
# 데이터 쓰기
csvwriter.writerow([name, price, link])
이 부분이 들여쓰기(indent)가 빠져 있습니다 ^^
Tab을 눌러서 들여쓰기를 만들어 주세요
0
스타트코딩
지식공유자2022.03.22
안녕하세요.
코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.
우선, 해당 메시지는 에러가 아닙니다.
아마도 작성하신 코드와 강의영상 코드가 달라서 한 줄 밖에 못가져오는 것 같네요.
아래 코드로 확인해 보시기 바랍니다 ^^
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()
답변 2