#!/usr/bin/env python3
import re, subprocess
from bs4 import BeautifulSoup

url = "http://www.sdsx.gov.cn/channel_t_273_15736/"
result = subprocess.run(["curl", "-sL", "--max-time", "15", "-H", "User-Agent: Mozilla/5.0", url],
    capture_output=True, text=True, timeout=30)
html = result.stdout
soup = BeautifulSoup(html, "html.parser")

# Find all a tags with doc_ in href
for a in soup.find_all("a", href=re.compile(r"doc_")):
    href = a["href"]
    text = a.get_text(strip=True)
    parent_tag = a.find_parent()
    grandparent = parent_tag.find_parent() if parent_tag else None
    print(f"href={href[:50]}")
    print(f"  text={text[:50]}")
    print(f"  parent: {parent_tag.name} class={parent_tag.get('class','') if parent_tag else 'N/A'}")
    if grandparent:
        print(f"  grandparent: {grandparent.name} class={grandparent.get('class','')}")
    
    # Find span with date in same parent
    spans = parent_tag.find_all("span") if parent_tag else []
    if spans:
        for sp in spans:
            print(f"  span: {sp.get_text(strip=True)}")
    
    # Siblings
    for sib in (parent_tag or a).find_previous_siblings():
        txt = sib.get_text(strip=True)[:30]
        if txt:
            print(f"  prev_sib: {sib.name}.{sib.get('class','')} = {txt}")
    for sib in (parent_tag or a).find_next_siblings():
        txt = sib.get_text(strip=True)[:30]
        if txt:
            print(f"  next_sib: {sib.name}.{sib.get('class','')} = {txt}")
    
    print()
    break  # Just first
