코로나가 발생하기 직전 2019년도. 파이썬 매력에 빠져 코딩을 좀 하다가 한동안 손을 놓았었는데.. 오랫만에 비~얌(아나콘다) 한마리 노트북에 들였습니다.
오랫동안 손을 놓고 있었던터라 기억도 가물가물.. 웹서핑 해가며 겨우 설치 완료를 하고 처음으로 Chat GPT를 이용해서 뭔가를 시도해 보고자 했으며 약간의 성과가 있었기에 그 사례를 여러분들과 함께 나눠보고자 합니다. (랭체인과 관련이 없을수도 있으니 이해바랍니다.)
ㅁ 특정사이트에서 원하는 정보를 일정 시간마다 크롤링 해서 CSV 파일로 저장
유통에도 많은 관심이 있던터라, 지금 작게나마 스마트스토어를 운영중에 있는데 해외에 진출을 해보고자 여러 플랫폼을 알아보던 중 Q10 JAPAN 사이트를 알게되었고 동영상이나 여러 정보들을 보니 메인페이지 하단 ‘인기검색어’ 와 ‘핫트랜드’를 자주 모니터링 하면은 판매 아이템을 소싱하는데 아이디어를 얻을수 있다고 해서 시도했습니다.
기본적으로 직접 코딩을 할 줄 아는 수준은 아니지만 오래전 국비교육때 (유비쿼터스) 자바 스크립트 배워두었던 경험이 있어 소스를 이해하는데에는 큰 어려움은 없습니다.
아래 이미지 부터는 제가 Chat GPT와 나누었던 대화내용 일부분 입니다.
몇번 소스를 만들어 저에게 추천을 해주었지만 쥬피터 노트북에서 실행을 하니 잦은 에러가 발생하거나 아예 실행자체가 되지 않는 문제가 발생을 했었습니다.
여러차례 동일한 조건으로 시도를 했지만.. 에러가 나오거나 실행자체가 안되는 상황이…
그래서 바로 제가 원하는 부분을 Chat GPT를 통해서 구현을 하기는 힘들거 같아 조건을 다르게 해서 Chat GPT에게 Task를 수행을 하도록 지시를 했습니다.
그리고 결국에 비슷한 결과(?)를 얻게 되었습니다.
저장된 파일까지 확인완료 : qoo10_main_page_data.csv
이런 부분이 구현이 가능하다면, 조금만 시간과 노력을 투자하면 ‘특정 사이트의 원하는 정보를 일정 시간마다 크롤링 해서 CSV 파일로 저장’ 하는 부분도 구현이 가능하지 않을까 생각을 해본다.
유통업은 유독 정보 비대칭의 상황이 너무나 적나라하게 반영이 되는 업종이기에, 누가먼저 빠르게 원하는 정보를 습득을 하느냐가 성공의 관건이라고 생각되어, 이 부분을 좀 더 구체화해서 Real Time이나 정해진 시간마다 해당 정보를 크롤링 해서 CSV로 저장후 데이터셋화 해서 인공지능에게 학습을 시킨다면, 사용자들의 구매패턴 이나 선호도, 트랜드 예측 그리고 추후 소싱을 해야될 아이템들까지.. 따로 직원을 고용하지 않아도 1인으로 충분하게 매출을 만들어 낼 수 있지 않을까? 하는 마음에 LLM 서비스 개발 PROJECT 로 첫 시도를 해보았습니다.
아래는 실제 구동에 비슷하게 성공한(?) 소스코드를 공유해 드립니다.
!pip install selenium pandas webdriver-manager
import time
import datetime
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
def scrape_qoo10_main_page():
options = Options()
options.headless = False # 브라우저를 실제로 표시
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
url = "https://www.qoo10.jp/"
driver.get(url)
data = {'Date': [], 'Section': [], 'Content': []}
# ページが完全にロードされるまで待つ
time.sleep(5) # 충분한 로드 시간을 기다림
sections = driver.find_elements(By.CSS_SELECTOR, 'div') # 모든 div 요소를 선택
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
for section in sections:
section_name = section.get_attribute('class') # 섹션의 클래스 이름을 가져옴
content = section.text
if content.strip(): # 내용이 있는 섹션만 저장
data['Date'].append(now)
data['Section'].append(section_name)
data['Content'].append(content)
df = pd.DataFrame(data)
df.to_csv('qoo10_main_page_data.csv', mode='a', index=False, header=False)
print(f"{now} - Data collected and saved.")
driver.quit()
# 처음 실행 시 크롤링
scrape_qoo10_main_page()