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

session = requests.Session()
session.headers.update({"User-Agent": "Mozilla/5.0"})

url = "https://www.hx.gov.cn/xxgk/opennessContent/?branch_id=57a3df762c262ea9a00aad3b&column_code=30200"
session.get(url, timeout=15)
ajax_url = "https://www.hx.gov.cn/xxgk/opennessTarget/?branch_id=57a3df762c262ea9a00aad3b&column_code=30200"
session.get(ajax_url, headers={"X-Requested-With": "XMLHttpRequest", "Referer": url}, timeout=15)
session.cookies.set("token_verified", "true", domain="www.hx.gov.cn", path="/")

# Fetch a detail page
detail_url = "https://www.hx.gov.cn/xxgk/openness/detail/content/6a19b17f886688374d8b4567.html"
r = session.get(detail_url, timeout=15)
r.encoding = "utf-8"

soup = BeautifulSoup(r.text, "html.parser")

# Find right sidebar with links
right_div = soup.find("div", class_="m-right")
if right_div:
    print("=== m-right content ===")
    print(right_div.get_text(strip=True)[:500])
    print()
    links = right_div.find_all("a")
    for a in links:
        href = a.get("href", "")
        txt = a.get_text(strip=True)
        print("  Link: %s -> %s" % (txt[:60], href))
    
    if links:
        target_url = links[0].get("href", "")
        if not target_url.startswith("http"):
            target_url = "https://www.hx.gov.cn" + target_url
        print("\n=== Target URL: %s ===" % target_url)
        
        r2 = session.get(target_url, timeout=15)
        r2.encoding = "utf-8"
        soup2 = BeautifulSoup(r2.text, "html.parser")
        
        h1 = soup2.find("h1")
        if h1:
            print("Target Title: %s" % h1.get_text(strip=True)[:100])
        
        content_div = soup2.find("div", class_="m-contnet")
        if content_div:
            print("Target Content: %s" % content_div.get_text(strip=True)[:500])
        else:
            for cls in ["m-zw", "j-fontContent", "content", "article"]:
                d = soup2.find("div", class_=cls)
                if d:
                    print("Target div.%s: %s" % (cls, d.get_text(strip=True)[:300]))
                    break
else:
    print("m-right not found")
