지난 포스팅에 이어 업데이트 된 정보를 간략하게 공유해 드립니다.
(지난포스팅 보기 : https://www.gpters.org/dev/post/starting-langchain-first-time-vEunFwsnNLxKSzy)
특정사이트에서 원하는 영역의 부분을 정해진 시간마다 크롤링해서
(5분마다) csv 파일로 업데이트 하는 부분을 성공했습니다. 코드는
제가 앞으로 직접 사용을 해야되는 부분이라 일부만 공유하겠습니다.
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 selenium.webdriver.common.action_chains import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
import schedule
# 작업 실행 상태를 나타내는 플래그
is_running = False
def scrape_qoo10():
global is_running
** 중략 / 실제 활용을 해야되는 코드라 일부만 공개합니다 **
# 처음 실행 시 크롤링
scrape_qoo10()
# 5분마다 함수 실행
schedule.every(5).minutes.do(scrape_qoo10)
while True:
schedule.run_pending()
time.sleep(1)
해당 소스코드를 실행을 하면 결과가 이렇게 나옵니다.
크롤링 된 정보가 저장된 .csv 파일입니다.
그리고 아래는 해당 파일이 제대로 저장이 되었는지 체크 이미지 입니다.
대시보드에서 해당 csv에 저장된 파일을 추출을 해서 불러온 결과물 입니다.
import os
import dash
from dash import dcc, html
from dash.dependencies import Output, Input
import pandas as pd
# 파일 경로 설정 (현재 작업 디렉토리 사용)
file_path = os.path.join(os.getcwd(), 'qoo10_trends.csv')
def load_data():
print(f"Attempting to load data from {file_path}")
if not os.path.exists(file_path):
print(f"Error: File not found at {file_path}")
return pd.DataFrame()
** 중략 / 실제 활용을 해야되는 코드라 일부만 공개합니다 **
grp_hotrnk_product_list = [html.H3("TOP 10 핫트랜드")]
grp_hotrnk_product_list += [html.P(f"{i+1}. {term}") for i, term in enumerate(grp_hotrnk_product_terms)]
return html.H3(f"Last Updated: {last_updated}"), grp_pplrnk_list, grp_hotrnk_product_list
if __name__ == '__main__':
app.run_server(debug=True, port=8060)
크롤링 된 csv 파일을 LLM 모델에 학습을 시키거나, 아니면 챗봇 형태로 파일을 업로드 해서 해당 파일들에 대해서 사용자들의 구매패턴 이나 선호도, 트랜드 예측 그리고 추후 소싱을 해야될 아이템들까지 추천을 받을 수 있도록 구현을 해보고 싶은 생각입니다.
여기에서 더 나아가 5분 간격으로 업데이트 된 정보를 LLM 모델에서 감지를 하고, 해당 아이템을 국내 사이트에서 검색을 해서 최저가의 제품까지 추천을 해주는 서비스를 만드는게 지금 현재의 목표입니다.
감사합니다.