feat(xkgroup): 加 3 个新过滤规则 (类型+多次询价标题+组织白名单)

【新规则】
1. DEFAULT_TYPES 增加 D (流标公告), 现在抓寻源(C) + 流标(D)
2. RETRY_PATTERN: 标题含 二次/三次/四次/.../九次
3. ORG_WHITELIST: 新疆宝地矿业股份有限公司 + 新疆火烧云铅锌矿有限责任公司

【触发时机】
这三个条件作为附加过滤层, 在原有 --keyword (DB CrawlerConfig.keywords) 之后生效

【验证(生产)】
累计 168 条历史状态命中:
  - 单 RETRY: 49 条
  - 单 ORG: 10 条
  - RETRY + ORG: 3 条 (火烧云绿色矿山, 宝地审计二次/三次)

⚠️ 注意: 加上 DB 关键词 (电缆/钢材/阀门/管材/设备/机械/矿业) 后只剩 2 条命中
   关键词是为电力工程领域配的, 新规则聚焦宝地/火烧云的多次询价,
   两者交集很小. 建议清掉新矿 DB 的 keywords 让新规则单独生效.
This commit is contained in:
Sisyphus 2026-07-22 15:13:00 +08:00
parent 587a09774e
commit fd8b197853

View File

@ -41,7 +41,16 @@ NOTICE_TYPES = {
"D": "流标公告",
"B": "结果公示",
}
DEFAULT_TYPES = ["C"] # 默认只抓取寻源公告
DEFAULT_TYPES = ["C", "D"] # 抓取寻源公告 + 流标公告
# 多次询价标题正则 (匹配 二次/三次/四次/.../九次)
RETRY_PATTERN = re.compile(r"[二三四五六七八九]次")
# 发布组织白名单 (新矿供应链平台关注的发布方)
ORG_WHITELIST = (
"新疆宝地矿业股份有限公司",
"新疆火烧云铅锌矿有限责任公司",
)
OUTPUT_BASE = os.path.expanduser("~/desktop/招标公告")
@ -301,6 +310,16 @@ def run():
filtered_count += 1
continue
# 多次询价标题过滤 (二次/三次/四次...)
if not RETRY_PATTERN.search(notice["title"]):
filtered_count += 1
continue
# 发布组织白名单
if not any(org_name in notice["org"] for org_name in ORG_WHITELIST):
filtered_count += 1
continue
notice_id = notice["id"]
# 去重