#!/usr/bin/env python3
"""hanchuan 正则调试: 保存 HTML + 测试提取"""
import asyncio, re, sys

UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"

async def main():
    from playwright.async_api import async_playwright
    from playwright_stealth import Stealth
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=True,
            executable_path='/root/.cache/ms-playwright/chromium-1228/chrome-linux64/chrome',
            args=['--no-sandbox', '--disable-setuid-sandbox', '--disable-blink-features=AutomationControlled']
        )
        stealth = Stealth()
        ctx = await browser.new_context(user_agent=UA, locale='zh-CN',
                                        viewport={'width': 1440, 'height': 900}, timezone_id='Asia/Shanghai')
        await stealth.apply_stealth_async(ctx)
        page = await ctx.new_page()

        await page.goto("http://www.hanchuan.gov.cn/tzgg/index.jhtml", wait_until='domcontentloaded', timeout=40000)
        await page.wait_for_timeout(6000)
        html = await page.content()
        with open('/tmp/hanchuan_list.html', 'w') as f:
            f.write(html)
        print(f"saved len={len(html)}")

        # 测试正则
        pat1 = re.compile(r'<a[^>]*href="([^"]*\.jhtml)"[^>]*title="([^"]*)"[\s\S]{0,500}?(\d{4}-\d{2}-\d{2})')
        rows1 = pat1.findall(html)
        print(f"pat1 (href+title+500内日期): {len(rows1)}")
        if rows1:
            print(f"  示例: {rows1[0]}")

        pat2 = re.compile(r'<a[^>]*href="([^"]*\.jhtml)"')
        rows2 = pat2.findall(html)
        print(f"pat2 (仅 href .jhtml): {len(rows2)}")

        pat3 = re.compile(r'news-list[\s\S]*?</ul>')
        m3 = pat3.search(html)
        if m3:
            seg = m3.group(0)
            print(f"news-list 段: {len(seg)}")
            pat4 = re.compile(r'<a[^>]*href="([^"]*)"[^>]*title="([^"]*)"')
            rows4 = pat4.findall(seg)
            print(f"  href+title: {len(rows4)}")
            for u, t in rows4[:3]:
                print(f"    {u[:60]} | {t[:40]}")
            # 日期
            dates = re.findall(r'(\d{4}-\d{2}-\d{2})', seg)
            print(f"  日期: {dates[:5]}")

        await browser.close()

asyncio.run(main())
