#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""渲染 jiaxian 列表页, 捕获 stlDynamic AJAX 请求的完整格式"""
import asyncio
from playwright.async_api import async_playwright

URL = 'http://www.jiaxian.gov.cn/channels/12396.html'

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True, args=['--no-sandbox'])
        page = await browser.new_page(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36')
        reqs = []
        def on_request(req):
            if 'user.pds.gov.cn' in req.url or 'dynamic' in req.url:
                reqs.append((req.method, req.url, req.post_data))
        page.on('request', on_request)
        try:
            await page.goto(URL, timeout=60000, wait_until='domcontentloaded')
        except Exception as e:
            print('goto err:', type(e).__name__)
        await page.wait_for_timeout(12000)
        print(f'=== 捕获 {len(reqs)} 个 pds 请求 ===')
        for m, u, pd in reqs:
            print('METHOD:', m)
            print('URL:', u[:200])
            print('POST_DATA:', (pd[:600] if pd else 'N/A'))
            print()
        # 渲染后的列表
        ml = await page.query_selector('#ajaxElement_1_1')
        if ml:
            html = await ml.inner_html()
            print('=== ajaxElement_1_1 渲染后 ===')
            print(html[:2000])
        await browser.close()

asyncio.run(main())
