File size: 1,170 Bytes
46d572c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # -*- coding: utf-8 -*-
"""기준서 게시판 전체 수집 드라이버 (warning 로그 캡처 포함).
사용법: python3 -u run_std.py 3001
- crawl_standards로 잔여 전체 수집 (state/ 재개, raw/ 보관)
- 문단 체계 warning(kasb.parsers)을 data/std_warnings_<board>.log + stdout에 기록
"""
import logging
import sys
from crawler import DATA
from standards_crawler import STD_BOARDS, crawl_standards
board = sys.argv[1] if len(sys.argv) > 1 else "3001"
logger = logging.getLogger("kasb.parsers")
logger.setLevel(logging.WARNING)
_fh = logging.FileHandler(DATA / ("std_warnings_" + board + ".log"), encoding="utf-8")
_fh.setFormatter(logging.Formatter("%(asctime)s %(message)s"))
logger.addHandler(_fh)
_sh = logging.StreamHandler(sys.stdout) # 모니터가 [WARN] 라인을 잡도록 stdout
_sh.setFormatter(logging.Formatter("[WARN] %(message)s"))
logger.addHandler(_sh)
print("########## {} ({}) 수집 시작 ##########".format(board, STD_BOARDS[board]["source"]),
flush=True)
saved, skipped = crawl_standards(board)
print("\n########## {} 완료: 신규 {}건, 스킵 {}건 ##########".format(board, saved, skipped),
flush=True)
|