#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""probe_yingquan3.py —— 钉死正文容器 + 附件区 + 表格样例"""
import re
import urllib.parse

import requests

requests.packages.urllib3.disable_warnings()
LIB = "https://www.yingquan.gov.cn"
LIST = LIB + "/Content/showList/508/page_1.html"
UA = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 "
      "(KHTML, like Gecko) Chrome/124.0 Safari/537.36")
H = {"User-Agent": UA, "Accept-Language": "zh-CN,zh;q=0.9"}


def get(u):
    r = requests.get(u, headers=H, timeout=30, verify=False)
    r.encoding = r.apparent_encoding or "utf-8"
    return r.text


def show_container(h, label, start_re, span=4000):
    m = re.search(start_re, h)
    if not m:
        print("  [%s] 未找到" % label)
        return None
    s = m.start()
    frag = h[s:s + span]
    # 截到闭合（粗略：下一个同级 </div> 后的 300 字）
    print("  [%s] 片段（前 700）:" % label)
    print("   ", re.sub(r"\s+", " ", frag)[:700])
    inner = frag
    print("    <p>数=%d 纯文本=%d <table>=%d <img>=%d" % (
        inner.count("<p"), len(re.sub(r"<[^>]+>", "", inner[:inner.find("</section>") if "</section>" in inner else span])),
        inner.count("<table"), inner.count("<img")))
    return frag


print("=== 列表页取 6 条详情 URL ===")
h = get(LIST)
urls = re.findall(r'href="(/Content/show/\d+\.html)"[^>]*title="([^"]{4,70})"', h)[:6]
for u, t in urls:
    print("  ", t[:44], "|", u)

print("\n=== 逐条看正文容器 ===")
for u, t in urls[:4]:
    hd = get(LIB + u)
    print("\n---- %s (%d 字节) ----" % (t[:40], len(hd)))
    # id=zoom
    i = hd.find('id="zoom"')
    if i < 0:
        i = hd.find("id=zoom")
    print("  id=zoom 位置:", i, "| j-fontContent:", hd.find("j-fontContent"),
          "| m-dttexts:", hd.find("m-dttexts"), "| m-dtdownload:", hd.find("m-dtdownload"))
    if i >= 0:
        seg = hd[i:i + 6000]
        end = seg.find("</section>")
        seg = seg[:end] if end > 0 else seg
        tx = re.sub(r"<[^>]+>", "", seg)
        print("  #zoom 块: <p>=%d 纯文本=%d <table>=%d <img>=%d <a>=%d" % (
            seg.count("<p"), len(tx), seg.count("<table"), seg.count("<img"), seg.count("<a ")))
        print("   正文起头:", re.sub(r"\s+", " ", tx)[:150])
        print("   正文结尾:", re.sub(r"\s+", " ", tx)[-150:])
    # 附件区
    j = hd.find("m-dtdownload")
    if j >= 0:
        seg = hd[j:j + 1500]
        print("  附件区:", re.sub(r"\s+", " ", seg)[:400])
        fl = re.findall(r'href="([^"]+\.(?:pdf|doc|docx|xls|xlsx|zip|rar|ofd|wps))"', hd, re.I)
        print("  文件链接:", len(fl), fl[:4])
    else:
        print("  无 m-dtdownload 块")
    # 元数据块
    k = hd.find("m-dtsxqh")
    if k >= 0:
        print("  元数据块(m-dtsxqh):", re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", hd[k:k + 900]))[:260])
