#!/usr/bin/env python3
"""Check lylgkfq detail page structure"""
import requests, re, sys
from bs4 import BeautifulSoup
sys.stdout.reconfigure(encoding='utf-8')

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}
s = requests.Session()
s.headers.update(headers)

# Pick two different detail pages: one with 环评 content and one general
urls = [
    'http://www.lylgkfq.gov.cn/info/2254/57271.htm',
    'http://www.lylgkfq.gov.cn/info/2254/58061.htm',
]

for url in urls:
    r = s.get(url, timeout=30)
    r.encoding = 'utf-8'
    soup = BeautifulSoup(r.text, 'html.parser')
    print(f'\n=== {url.split("/")[-1]} ===')
    print(f'Title: {soup.title.get_text(strip=True)[:60] if soup.title else "N/A"}')
    
    # Find content area - VSB9 usually uses div.content or similar
    for cls in ['content', 'article', 'main', 'text', 'info_content', 'nr', 'art-main']:
        el = soup.find('div', class_=cls) or soup.find('div', id=cls)
        if el:
            txt = el.get_text(strip=True)[:100]
            print(f'  .{cls}: {len(el.get_text(strip=True))} chars, "{txt}"')
    
    # Also check all divs with significant text
    print(f'\n  All content divs:')
    for div in soup.find_all('div'):
        txt = div.get_text(strip=True)
        cls = ' '.join(div.get('class', [])) if div.get('class') else ''
        id_ = div.get('id', '')
        if 100 <= len(txt) <= 10000:
            print(f'    div.{cls}#{id_}: {len(txt)} chars')
    
    # Find meta PubDate
    for meta in soup.find_all('meta'):
        name = meta.get('name', '')
        if 'Date' in name or 'Time' in name:
            print(f'  Meta {name}: {meta.get("content","")[:30]}')
    
    # Print HTML of content area
    content_div = soup.find('div', class_=lambda c: c and any(x in ' '.join(c).lower() for x in ['content', 'info', 'article', 'maintext', 'nr']) if c else False)
    if content_div:
        ps = content_div.find_all('p')
        tables = content_div.find_all('table')
        print(f'  Content: {len(ps)} p-tags, {len(tables)} tables')
        for p in ps[:8]:
            ptxt = p.get_text(strip=True)
            if ptxt:
                print(f'    <p>: {ptxt[:100]}')
        for tbl in tables[:2]:
            print(f'    <table>: {len(tbl.find_all("tr"))} rows')
