Initial commit

This commit is contained in:
2026-07-18 15:51:01 +08:00
commit f2c80c5a9c
799 changed files with 133475 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
"""cninfo 公告抓取入口。
用法:
uv run python -m scripts.run_cninfo # 抓取今天公告
uv run python -m scripts.run_cninfo --days 3 # 抓取最近 3 天
uv run python -m scripts.run_cninfo --max-pages 50 # 最多 50 页
uv run python -m scripts.run_cninfo --no-save # 试跑不存盘
"""
from __future__ import annotations
import argparse
import sys
from datetime import date, timedelta
from pathlib import Path
from dotenv import load_dotenv
from loguru import logger
from crawler.cninfo import crawl_announcements
def _setup_logger(level: str) -> None:
logger.remove()
logger.add(sys.stderr, level=level,
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {name} | {message}")
log_path = Path("logs") / "cninfo.log"
log_path.parent.mkdir(parents=True, exist_ok=True)
logger.add(log_path, level="DEBUG", rotation="10 MB", retention=5, encoding="utf-8")
def main() -> int:
load_dotenv()
parser = argparse.ArgumentParser(description="cninfo 巨潮资讯网公告抓取")
parser.add_argument("--days", type=int, default=0,
help="抓取最近 N 天的公告,默认读 CNINFO_DAYS_BACK")
parser.add_argument("--start", default=None, help="开始日期 YYYY-MM-DD")
parser.add_argument("--end", default=None, help="结束日期 YYYY-MM-DD")
parser.add_argument("--max-pages", type=int, default=0, help="最大页数")
parser.add_argument("--no-save", action="store_true", help="仅抓取不存盘")
parser.add_argument("--log-level", default="INFO")
args = parser.parse_args()
_setup_logger(args.log_level)
start = args.start
end = args.end
if args.days > 0 and not start:
start = (date.today() - timedelta(days=args.days)).strftime("%Y-%m-%d")
if not end:
end = date.today().strftime("%Y-%m-%d")
results = crawl_announcements(
start_date=start,
end_date=end,
max_pages=args.max_pages or None,
save=not args.no_save,
)
if not results:
return 1
logger.info("cninfo 抓取完成: {}", len(results))
return 0
if __name__ == "__main__":
raise SystemExit(main())