diff --git a/StockCrawler.py b/StockCrawler.py index dd97dbe..ac680b0 100644 --- a/StockCrawler.py +++ b/StockCrawler.py @@ -35,72 +35,73 @@ slackBot = SlackBot() error_count = 0 if week in (0, 1, 2, 3, 4): # 0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일 - while error_count < 3: - try: - # 재무제표는 3개월마다 다운로드를 한다. - fnGuideCrawler = FnGuideCrawler(START_DATE) - print("[KOSPI 상장기업 재무제표 다운로드]") - fnGuideCrawler.crawl_fnguide(stockFileName) + slackBot.sendMsg("Start. Crawling...") + + # 재무제표는 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) + + slackBot.sendMsg("Done. Meta Crawling...") + print("\n[종목 다운로드]") + stockCrawler = StockCrawler(START_DATE) + stockCrawler.crawl_etf_stocks(stockFileName) + stockCrawler.crawl_stocks(stockFileName) + stockCrawler.crawl_special_stocks(stockFileName) + slackBot.sendMsg("Done. Stock Crawling...") - 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(stockFileName) + stockStatus = StockStatus(RESOURCE_PATH) - print("\n[종목 분석]") - # S: 분석까지 진행 - inFileName = PROJECT_HOME + '/resources/stock.db' - analyzerSqlite = AnalyzerSqlite(stockFileName) - stockStatus = StockStatus(RESOURCE_PATH) + analyzerSqlite.analyzeDaily() + analyzerSqlite.analyzeGrouping("weekly") + analyzerSqlite.analyzeGrouping("monthly") + slackBot.sendMsg("Done. Stock Analysis...") - analyzerSqlite.analyzeDaily() - analyzerSqlite.analyzeGrouping("weekly") - analyzerSqlite.analyzeGrouping("monthly") + print("\n[종목 결정]") + # HTML 출력 + outPath = os.path.join(PROJECT_HOME, "resources", "analysis") + if not os.path.isdir(outPath): + os.mkdir(outPath) + day = datetime.today().strftime("%Y%m%d") + before_7_day = datetime.today() + relativedelta(days=-7) + dayList = os.listdir(outPath) + for dayDir in dayList: + if dayDir[0] != '.' and dayDir < before_7_day.strftime("%Y%m%d"): + if os.path.exists(os.path.join(outPath, dayDir)): + shutil.rmtree(os.path.join(outPath, dayDir)) + outPath = os.path.join(outPath, day) + if os.path.isdir(outPath): + shutil.rmtree(outPath) + os.mkdir(outPath) - print("\n[종목 결정]") - # HTML 출력 - outPath = os.path.join(PROJECT_HOME, "resources", "analysis") - if not os.path.isdir(outPath): - os.mkdir(outPath) - day = datetime.today().strftime("%Y%m%d") - before_7_day = datetime.today() + relativedelta(days=-7) - dayList = os.listdir(outPath) - for dayDir in dayList: - if dayDir[0] != '.' and dayDir < before_7_day.strftime("%Y%m%d"): - if os.path.exists(os.path.join(outPath, dayDir)): - shutil.rmtree(os.path.join(outPath, dayDir)) - outPath = os.path.join(outPath, day) - if os.path.isdir(outPath): - shutil.rmtree(outPath) - os.mkdir(outPath) + analyzerSqlite.findCandidates(outPath) + stockStatus.findCandidates(outPath) - analyzerSqlite.findCandidates(outPath) - stockStatus.findCandidates(outPath) + slackBot.sendMsg("Done. Crawling...") - slackBot.sendMsg("Done. Crawling...") - except: - error_count += 1 - continue print("time : %6.2f 초", (time.time() - start)) print ("done...")