添加校招鸭数据

This commit is contained in:
zk
2026-07-29 10:33:31 +08:00
parent 74451cf5a6
commit 9063a05bd8
2 changed files with 32415 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
"""读取校招鸭公告 URL 文件并批量处理(一次性执行)。
运行(项目根目录下):
python init_xiaozhaoya.py
"""
from __future__ import annotations
import json
from pathlib import Path
from app.core.database import close_db, init_db
from app.core.logger import log
from app.service.announcement_batch_service import save_announcements
URLS_PATH = Path(__file__).resolve().parent / "doc" / "xiaozhaoya_announcement_links.json"
def load_urls() -> list[str]:
"""从本地 JSON 读取公告地址,过滤无效值并保持原始顺序去重。"""
with URLS_PATH.open("r", encoding="utf-8") as json_file:
payload = json.load(json_file)
if not isinstance(payload, list):
raise ValueError(f"公告地址 JSON 必须是数组:{URLS_PATH}")
urls: list[str] = []
seen: set[str] = set()
for value in payload:
if not isinstance(value, str):
continue
url = value.strip()
if not url.startswith(("http://", "https://")) or url in seen:
continue
seen.add(url)
urls.append(url)
log.info("从文件读取到 {} 条公告地址(原始 {} 条)", len(urls), len(payload))
return urls
def main() -> None:
"""读取 URL,初始化数据库并直接调用批量处理服务。"""
urls = load_urls()
init_db()
try:
save_announcements(urls)
finally:
close_db()
if __name__ == "__main__":
main()