inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

SSLError 해결하는 방법

list 데이터를 하나의 셀에 입력 할 수 있나요?

288

kshssi

작성한 질문수 12

1

위 강의를 보고 응용해보고자 하는중인데 

아래 코드와 같이 작업하여 

 

A1하나의 셀에 cmt 데이터를 다 넣고 싶은데 

A1, A2, A3 이렇게 입력이 됩니다. 

 

어떻게 방법이 없을까요?

 

 

rom pickle import APPEND
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager # 크롬 드라이버 자동 업데이트
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

import requests, openpyxl, time, pyautogui

# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
#chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 불필요한 에러 메세지 없애기

# 셀레니움 드라이버 세팅
service = Service(executable_path=ChromeDriverManager().install())
browser = webdriver.Chrome(service=service,options=chrome_options)

wb = openpyxl.Workbook()
ws = wb.active
ws.append(['이미지','순번', '시즌', '스타일', '컬러', '스타일명', '택가', '판매가', '선호도', '상품설명', '혼용률', '제조년월','URL'])
ws.column_dimensions['A'].width = 5
ws.column_dimensions['B'].width = 5
ws.column_dimensions['C'].width = 5
ws.column_dimensions['D'].width = 15
ws.column_dimensions['E'].width = 10
ws.column_dimensions['F'].width = 30
ws.column_dimensions['G'].width = 10
ws.column_dimensions['H'].width = 10
ws.column_dimensions['I'].width = 10
ws.column_dimensions['J'].width = 10
ws.column_dimensions['k'].width = 10
ws.column_dimensions['l'].width = 10
ws.column_dimensions['m'].width = 10


browser.implicitly_wait(5) # 웹페이지가 로딩 될때까지 5초는 기다림
browser.maximize_window() # 화면 최대화


url = f"https://www.creasmall.com/display/category/goods/list/form?brandGrpNo=0&cateGb=G032_101&cate1No=1200"
browser.get(url) # 주소 이동
browser.execute_script("location.reload()")
browser.find_element(By.CSS_SELECTOR, f'#contents > div > section.filter-item-wrap > div:nth-child(2) > a').click()
browser.find_element(By.CSS_SELECTOR, f'#contents > div > section.filter-item-wrap > div:nth-child(2) > div > ul > li:nth-child(3) > a > span').click()
time.sleep(0.1)
browser.find_element(By.CSS_SELECTOR, f'#contents > div > section.filter-item-wrap > div:nth-child(1) > a').click()
browser.find_element(By.CSS_SELECTOR, f'#cy1201 > span').click()
time.sleep(0.1)

items = browser.find_elements(By.CSS_SELECTOR, '#goodsArea > li >a')

for i, item in enumerate(items, 1):
if i >= 31 and i <= 31:
time.sleep(0.1)
browser.find_element(By.CSS_SELECTOR, f'#goodsArea > li:nth-child({i}) > a').click()
time.sleep(0.1)
comments = browser.find_elements(By.CSS_SELECTOR, '#reviewDiv > div.review-list-wrap > ul > li > div > a > div.cdesc')
for comment in comments:
cmt = comment.text
 
ws.append([cmt])
wb.save('dd3sdf33dk.xlsx')

browser.quit()

python 웹-크롤링

답변 1

0

스타트코딩

응용을 하고 계시다니, 

대단하십니다 ^^

 

A1하나의 셀에 cmt 데이터를 다 넣고 싶은데 

A1, A2, A3 이렇게 입력이 됩니다. 

 

-> cmt 변수의 데이터는 어떻게 되어 있나요? 문자열 데이터라면

ws.append([cmt]) 를 하면 A1 셀에만 입력이 될텐데요.

cmt 변수데이터와 엑셀 파일이 어떻게 되는지 알려주세요 :)

 

(코드 들여쓰기가 안되서 정확한 해석이 불가능합니다, 들여쓰기를 맞추고 질문해 주세요) 

셀레니움 환경설정 오류

0

80

2

네이버 로그인 관련

0

370

2

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

0

104

1

크롤링 연습사이트 문의

0

122

2

선택자 질문

0

89

2

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

0

91

2

자동 로그인 질문

0

107

2

44강 제목, 링크

0

115

1

원하는 값이 없을 때

0

106

2

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

0

252

2

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

0

108

2

글목록 추출하기

0

111

2

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

0

100

2

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

0

82

2

강의 커리큘럼 질문

0

112

1

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

0

84

2

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

0

109

2

웹페이지 변경

0

84

2

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

1

72

2

수료증은 어떻게 받나요?

0

129

2

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

0

67

2

드라이버가 안 열려요

0

90

2

이거 해결방법 아시는 분?

0

124

2

네이버 지식인 크롤링..

0

217

2