#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""batch6_smoke.py —— 3 个新生成脚本的列表冒烟：标记数 vs parse_list 输出数"""
import importlib.util
import re
import sys

CASES = [
    ("宾阳", "crawl_binyang_hjsp.py", "http://www.binyang.gov.cn/gk/xxgkml/shgjsyjslygk/hjbhly/jsxmhjyxpjsp/"),
    ("大足", "crawl_dazu_glz_qtgw.py", "https://www.dazu.gov.cn/qzfjz/glz_101897/zwgk_53321/fdzdgknr_53323/lzyj_100471/qzfjz/"),
    ("青阳", "crawl_ahqy_hjsp.py", "https://www.ahqy.gov.cn/Jczwgk/opennessList/650/102002008/page_1.html"),
]

for tag, f, _ in CASES:
    spec = importlib.util.spec_from_file_location("m_" + tag, "/root/gov_crawler/" + f)
    m = importlib.util.module_from_spec(spec)
    try:
        spec.loader.exec_module(m)
    except Exception as e:
        print("【%s】❌ 加载失败: %s" % (tag, str(e)[:90]))
        continue
    print("=" * 92)
    print("【%s】%s" % (tag, f))
    print("   SITE_NAME=%s | GROUP=%s | CATEGORY=%s" % (m.SITE_NAME, m.GROUP_NAME, m.CATEGORY))
    u = m.list_page_url(1)
    h = m.fetch(u)
    if not h:
        print("   ❌ 第1页 fetch 失败:", u[:80])
        continue
    its = m.parse_list(h)
    # 标记数（各站不同标记，用通用近似：含日期的 li）
    mk = len([x for x in re.findall(r"<li[^>]*>.*?</li>", h, re.S | re.I)
              if re.search(r"20\d{2}[-/.]\d{1,2}[-/.]\d{1,2}", x) and "<a" in x])
    print("   第1页: 含日期li标记=%d | parse_list=%d  %s" % (
        mk, len(its), "✅" if its else "❌ 解析为 0"))
    for u2, t, d in its[:3]:
        print("      %s | %s | %s" % (d, t[:46], u2[-40:]))
    if len(its) >= 2:
        u2 = m.list_page_url(2)
        h2 = m.fetch(u2)
        i2 = m.parse_list(h2) if h2 else []
        first1 = its[0][2] if its else ""
        first2 = i2[0][2] if i2 else ""
        print("   第2页: %s → %d 条 (首条日期 %s)  %s" % (
            u2[-46:], len(i2), first2,
            "✅ 与第1页不同" if i2 and (first2 != first1) else "⚠️ 可能重复/为空"))
