카페24 매출 데이터를 저장할 수 있는 간단한 스크립트 입니다.
셀레니움을 통해서 카페24 로그인을 시도한 후 > 매출 조회 페이지로 이동합니다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# Chrome 웹 드라이버 경로 설정
driver_path = '/경로/chromedriver.exe' # chromedriver.exe 파일의 경로로 수정해야 합니다.
driver = webdriver.Chrome(executable_path=driver_path)
# 카페24 로그인 페이지로 이동
driver.get('https://eclogin.cafe24.com/Shop/')
# 아이디와 패스워드 입력
username = '여기에_카페24_아이디를_입력하세요'
password = '여기에_카페24_비밀번호를_입력하세요'
driver.find_element_by_id('mall_id').send_keys(username)
driver.find_element_by_id('userpasswd').send_keys(password)
# 로그인 버튼 클릭
driver.find_element_by_css_selector('#tabAdmin > div > fieldset > p.gButton > a').click()
# 로그인 후 잠시 대기 (원하는 페이지로 이동하기 위해 충분한 시간을 확보)
time.sleep(5)
# 원하는 페이지로 이동 (예시: 일별 매출 조회 페이지)
driver.get('https://상점명.cafe24.com/disp/admin/shop1/report/DailyList')
# 페이지 로드를 위해 충분한 시간 대기 (필요에 따라 조정)
time.sleep(5)
# 이후 데이터를 수집하고 처리하는 코드를 작성하세요.
# BeautifulSoup 등을 사용하여 페이지의 HTML을 파싱하고 데이터 추출
# 웹 브라우저 종료
driver.quit()
주어진 코드 예시에서는 Selenium을 사용하여 웹 페이지의 “자세히보기” 체크박스를 클릭하고, 기간 설정을 통해 매출 데이터를 수집하고 처리하는 부분이 구현되어 있습니다.
아래에서는 이 코드를 기반으로 데이터 수집 및 처리를 진행하는 부분을 더 자세히 설명합니다.
- “자세히보기” 체크박스 클릭:
# "자세히보기" 체크박스 클릭
driver.find_element_by_id('sReportGabView').click()
- 기간 설정:
# 기간 설정 input이 로드 될때까지 대기
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#pr_start_date')))
# 매출 데이터를 수집할 기간을 지정 (예시: 2024년 1월 1일부터 2024년 12월 31일까지)
start_date = datetime.datetime(2024, 1, 1)
end_date = datetime.datetime(2024, 12, 31)
start_date_str = start_date.strftime('%Y-%m-%d')
end_date_str = end_date.strftime('%Y-%m-%d')
# 기간 설정
driver.execute_script('''
document.getElementById('pr_start_date').setAttribute('value', '{}');
document.getElementById('pr_end_date').setAttribute('value', '{}');
document.querySelector('select#rows option[value="100"]').setAttribute('value', 500);
'''.format(start_date_str, end_date_str))
# 페이지 레코드 수 설정
driver.find_element_by_css_selector('select#rows option[value="500"]').click()
- 데이터 수집:
# 데이터 테이블 파싱을 위해 BeautifulSoup 사용
table_tag = driver.find_element_by_css_selector('.mBoard.gScroll > table')
soup = BeautifulSoup(table_tag.get_attribute('outerHTML'), 'lxml')
row_list = []
# 데이터 테이블에서 행별로 데이터 추출
for tr in soup.select('tbody > tr'):
td_list = tr.select('td')
row = {
"date": td_list[0].text,
"주문수": td_list[1].text,
"품목수": td_list[2].text,
"상품구매금액": td_list[3].text,
"배송비": td_list[4].text,
"할인": td_list[5].text,
"쿠폰": td_list[6].text,
"실제결제금액": td_list[7].text,
"적립금": td_list[8].text,
"예치금": td_list[9].text,
"네이버포인트": td_list[10].text,
"결제합계": td_list[11].text,
}
row_list.append(row)
# 수집된 데이터를 DataFrame에 저장
import pandas as pd
df = pd.DataFrame(row_list)
print(df)
위의 코드 예시는 “자세히보기” 체크박스를 클릭하고 기간 설정 후 매출 데이터를 수집하여 Pandas DataFrame에 저장하는 과정을 보여줍니다. 이 코드를 기반으로 원하는 추가 데이터 수집 및 처리를 수행할 수 있습니다. 또한, 필요에 따라 데이터를 파일에 저장하거나 다른 분석 작업을 수행할 수 있습니다.
파이썬 설치 없이 웹에서 실행하는 방법? 구글 코랩
Colab은 파이썬 기반의 Jupyter 노트북 환경을 제공하며, Selenium을 설치하고 실행할 수 있는 환경을 제공합니다. 다음은 Google Colab에서 Selenium을 사용하는 기본적인 단계입니다:
- Google Colab을 열고 노트북을 생성합니다.
- 필요한 패키지 및 드라이버 설치: Selenium 및 웹 드라이버를 사용하기 위해 다음과 같은 코드로 필요한 패키지를 설치하고 드라이버를 다운로드합니다.
pythonCopy code!pip install selenium
!apt-get update # 드라이버 다운로드를 위해 패키지 관리자 업데이트
!apt install chromium-chromedriver
- Selenium 웹 드라이버 설정: Chrome 웹 드라이버의 경로를 설정합니다.
pythonCopy codefrom selenium import webdriver
from selenium.webdriver.common.keys import Keys
options = webdriver.ChromeOptions()
options.add_argument('--headless') # 웹 브라우저 숨기기 (필요에 따라 설정)
# 웹 드라이버 설정
driver = webdriver.Chrome('chromedriver', options=options)
- Selenium을 사용하여 웹 페이지를 조작하고 데이터를 수집합니다.
- 작업이 끝나면 웹 드라이버를 종료합니다.
Google Colab에서 Selenium을 사용하는 방법은 일반적인 Python 환경에서 사용하는 방법과 유사하지만, 더 간편하게 사용할 수 있습니다. Colab을 사용하면 클라우드에서 GPU 및 RAM을 활용할 수 있으므로, 대규모 데이터 스크래핑 작업도 수행할 수 있습니다. 단, 웹 스크래핑 시에는 웹 사이트의 이용 약관을 준수하고 합법적으로 데이터를 수집해야 합니다.