This commit is contained in:
dsyoon
2022-08-04 23:44:31 +09:00
parent d670c4e28e
commit 210537415b

View File

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