#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""diag_yingquan_body.py —— 比对库内正文 vs 源站原文的分段结构"""
import importlib.util
import re
import sqlite3

spec = importlib.util.spec_from_file_location("m", "/root/gov_crawler/crawl_yingquan_gggs.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)

TITLE_KEY = "氨基葡萄糖盐酸盐等产品生产线改扩建项目环境影响评价第一次公示"

db = sqlite3.connect("/root/search.db", timeout=20)
db.execute("PRAGMA busy_timeout=20000")
row = db.execute(
    "SELECT id, page_url, title, content FROM gov_raw WHERE site_name=? AND title LIKE ?",
    ("颍泉区人民政府-公告公示", "%" + TITLE_KEY + "%")).fetchone()
if not row:
    print("❌ 库内未找到该文")
    raise SystemExit(1)
rid, url, title, content = row
print("=" * 92)
print("id:", rid)
print("title:", title)
print("url:", url)
print()
print("=== 库内 content 的分段结构 ===")
segs = content.split("\n\n")
print("段落数:", len(segs))
print("content 总长:", len(content), "| <p> 数:", content.count("<p"), "| </p> 数:", content.count("</p>"))
for i, s in enumerate(segs[:14]):
    print("  [%2d] len=%-5d %s" % (i, len(s), s[:110].replace("\n", "")))

print()
print("=" * 92)
print("=== 源站原文 #zoom 内 HTML 结构 ===")
h = m.fetch(url)
from bs4 import BeautifulSoup
soup = BeautifulSoup(h, "html.parser")
el = soup.select_one("#zoom")
raw = "".join(str(c) for c in el.contents) if el else ""
print("raw 长度:", len(raw), "| <p 数:", raw.count("<p"), "| </p> 数:", raw.count("</p>"),
      "| <br>:", len(re.findall(r"<br\s*/?>", raw, re.I)), "| <div>:", raw.count("<div"))
print()
print("--- raw 里的块级标签序列（前 30 个）---")
for i, mm in enumerate(re.finditer(r"<(p|div|br|table|span|font)[^>]*>|</(p|div|table|span|font)>", raw, re.I)):
    if i >= 30:
        break
    print("   ", mm.group(0)[:64])
print()
print("--- raw 中间部分（前 1500 字符）---")
print(raw[:1500])
