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)