Example #1
0
def run():
    # *****************************************************
    # logger 설정
    FORMAT = "[%(asctime)s]:%(levelname)s: %(filename)s | %(funcName)s - %(message)s"
    logging.basicConfig(format=FORMAT)
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)

    # *****************************************************
    # environment variables 설정
    config = ConfigLoader()
    config.init()
    config.load()

    # *****************************************************
    # DB 설정
    db_url = "mysql+pymysql://%s:%s@%s:%s/%s?charset=%s" % (
        config.DB_USER, config.DB_PASSWORD,
        config.DB_HOST, config.DB_PORT,
        config.DB_DATABASE, config.DB_CHARSET
    )
    dao = DBManager.initialize(db_url)
    DBManager.initialize_db()

    # DB 컨트롤러 인스턴스 생성
    db_controller = DBController(dao)

    # *****************************************************
    # 크롤러 인스턴스 생성
    DRIVER_PATH = get_driver_path()
    af = afreeca_crawler.AfreecaNoteCrawler(
        DRIVER_PATH, db_controller, config, logger)

    # 크롤러 시작
    af.start()

    # 크롤러 종료시, 커넥션 종료
    DBManager.dispose()