#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""probe_jxst_fields.py —— col42221 条目的完整字段 + 栏目真名"""
import json
import re
import subprocess

import requests

requests.packages.urllib3.disable_warnings()
BASE = "http://sthjt.jiangxi.gov.cn"
UA = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 "
      "(KHTML, like Gecko) Chrome/124.0 Safari/537.36")

r = requests.post(BASE + "/queryList",
                  data={"current": 1, "unitid": "380055", "webSiteCode": "jxssthjt",
                        "channelCode": "col42221", "perPage": 5, "pageSize": 5},
                  headers={"User-Agent": UA, "Referer": BASE + "/jxssthjt/col/col42221/index.html",
                           "X-Requested-With": "XMLHttpRequest"},
                  timeout=40, verify=False)
d = r.json()["data"]
print("page=%s rows=%s total=%s" % (d.get("page"), d.get("rows"), d.get("total")))
res = d["results"]
print("条目数:", len(res))
print("\n=== 第 1 条完整 source ===")
print(json.dumps(res[0]["source"], ensure_ascii=False, indent=1)[:1800])
print("\n=== 前 5 条标题/日期 ===")
for it in res:
    s = it["source"]
    print("  id=%s | %s | %s | %s" % (
        s.get("id", "")[:22], str(s.get("publishDate") or s.get("publishTime") or "")[:16],
        (s.get("title") or "")[:52], str(s.get("url") or s.get("link") or s.get("docUrl") or "")[:60]))

print("\n=== 栏目真名（从列表页导航取）===")
h = subprocess.run(["curl", "-sk", "-L", "--max-time", "30", "-A", UA,
                    BASE + "/jxssthjt/col/col42221/index.html"],
                   capture_output=True, timeout=50).stdout.decode("utf-8", "ignore")
for pat in [r"<title[^>]*>(.*?)</title>", r'channelName["\']?\s*[:=]\s*["\']([^"\']+)',
            r'col42221[^>]{0,80}', r"办理状态[^<]{0,40}"]:
    mm = list(dict.fromkeys(re.findall(pat, h, re.S | re.I)))[:4]
    if mm:
        print("  %-26s %s" % (pat[:26], [str(x)[:70] for x in mm]))
