diff --git a/StockCrawler.py b/StockCrawler.py index 1eedfeb..7777d5e 100644 --- a/StockCrawler.py +++ b/StockCrawler.py @@ -1,73 +1,74 @@ import os import shutil -import datetime import time +from datetime import datetime + from stock.crawler.FnGuideCrawler import FnGuideCrawler from stock.crawler.MetaCrawler import MetaCrawler from stock.crawler.StockCrawler import StockCrawler from stock.analysis.AnalyzerSqlite import AnalyzerSqlite -today = datetime.datetime.now().strftime("%Y-%m-%d") +today = datetime.now().strftime("%Y-%m-%d") # DB Browser for SQLite: http://hleecaster.com/python-sqlite3/ -PROJECT_HOME = os.path.join(os.path.dirname(os.path.join(os.path.dirname(os.path.join(os.path.dirname(os.path.join(os.path.dirname(__file__)))))))) +PROJECT_HOME = os.path.join(os.path.dirname(__file__)) START_DATE = "1900.01.01" start = time.time() stockFileName = PROJECT_HOME + '/resources/stock.db' +week = datetime.today().weekday() -# 재무제표는 3개월마다 다운로드를 한다. -fnGuideCrawler = FnGuideCrawler(START_DATE) -print("[KOSPI 상장기업 재무제표 다운로드]") -fnGuideCrawler.crawl_fnguide(stockFileName) +if week in (0, 1, 2, 3, 4): + # 재무제표는 3개월마다 다운로드를 한다. + fnGuideCrawler = FnGuideCrawler(START_DATE) + print("[KOSPI 상장기업 재무제표 다운로드]") + fnGuideCrawler.crawl_fnguide(stockFileName) -metaCrawler = MetaCrawler(START_DATE) -print("\n[증시자금동향 (신용잔고, 펀드자금 잔고)]") -metaCrawler.crawl_money_trend(stockFileName) + metaCrawler = MetaCrawler(START_DATE) + print("\n[증시자금동향 (신용잔고, 펀드자금 잔고)]") + metaCrawler.crawl_money_trend(stockFileName) -print("\n[국내 시장금리]") -metaCrawler.crawl_interest_rates(stockFileName) + print("\n[국내 시장금리]") + metaCrawler.crawl_interest_rates(stockFileName) -print("\n[투자자별 매매동향(Trading_Trend)]") -metaCrawler.crawl_trading_trend(stockFileName) + print("\n[투자자별 매매동향(Trading_Trend)]") + metaCrawler.crawl_trading_trend(stockFileName) -print("\n[환율 (USD, JPY, EUR, CNY)]") -metaCrawler.crawl_exchange(stockFileName) + print("\n[환율 (USD, JPY, EUR, CNY)]") + metaCrawler.crawl_exchange(stockFileName) -print("\n[원유 (WTI), 국제금, COPPER, NATURALGAS, CORN, SOYBEAN]") -metaCrawler.crawl_meterials(stockFileName) + print("\n[원유 (WTI), 국제금, COPPER, NATURALGAS, CORN, SOYBEAN]") + metaCrawler.crawl_meterials(stockFileName) -print("\n[종목 다운로드]") -stockCrawler = StockCrawler(START_DATE) -stockCrawler.crawl_etf_stocks(stockFileName) -stockCrawler.crawl_stocks(stockFileName) -#stockCrawler.crawl_special_stocks(stockFileName) + print("\n[종목 다운로드]") + stockCrawler = StockCrawler(START_DATE) + stockCrawler.crawl_etf_stocks(stockFileName) + stockCrawler.crawl_stocks(stockFileName) + #stockCrawler.crawl_special_stocks(stockFileName) -print("\n[종목 분석]") -# S: 분석까지 진행 -inFileName = PROJECT_HOME + '/resources/stock.db' -analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName) - -analyzerSqlite.analyzeDaily() -analyzerSqlite.analyzeGrouping("weekly") -analyzerSqlite.analyzeGrouping("monthly") - -analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName) -print("\n[종목 결정]") -day = datetime.datetime.today().strftime("%Y%m%d") -outPath = PROJECT_HOME + "/resources/analysis/" + day -if os.path.isdir(outPath): - shutil.rmtree(outPath) -os.mkdir(outPath) -print("print to Html...") -analyzerSqlite.findCandidate(outPath) -# E: 분석까지 진행 + print("\n[종목 분석]") + # S: 분석까지 진행 + inFileName = PROJECT_HOME + '/resources/stock.db' + analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName) + analyzerSqlite.analyzeDaily() + analyzerSqlite.analyzeGrouping("weekly") + analyzerSqlite.analyzeGrouping("monthly") + analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName) + print("\n[종목 결정]") + day = datetime.today().strftime("%Y%m%d") + outPath = PROJECT_HOME + "/resources/analysis/" + day + if os.path.isdir(outPath): + shutil.rmtree(outPath) + os.mkdir(outPath) + print("print to Html...") + analyzerSqlite.findCandidate(outPath) + # E: 분석까지 진행 print("time : %6.2f 초", (time.time() - start))