config = configparser.ConfigParser() config.read("src/config.ini") logging.basicConfig(filename=config['DEFAULT'].get('LogPath', 'log.txt'), level=logging.DEBUG) crawler = Crawler(config['DEFAULT'].get('BaseUrl', '')) historyRepo = StockRepository(config['DEFAULT']['ConnectionStr']) monitorStockCollect = historyRepo.GetMonitorStock() historyCollect = historyRepo.GetStockHistory() logger = logging.getLogger('Main') for stockInfo in monitorStockCollect.Select(): no = stockInfo['StockNumber'] for year in range(2012, 2021): for month in range(1, 13): try: historyData = crawler.GetHistory(no, year, month) time.sleep(3.5) for item in historyData['data']: dictItem = ExtractItem(item) dictItem['StockNo'] = no historyCollect.InsertOrUpdate(dictItem) except: logger.error( f'Datetime: {datetime.datetime.now()} ,stockNo :{no},year {year},month: {month} exception' )