#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""看清 CDN 域名返回的「风险提醒」页到底是什么（内容/按钮/是否 UA 相关）。"""
import ssl
import urllib.request
from playwright.sync_api import sync_playwright

CDN = 'https://bier-sales-d0gatbvlx288724e9-1458438710.tcloudbaseapp.com/workbench/index.html'
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

print('① urllib（脚本 UA）取到什么')
r = urllib.request.urlopen(urllib.request.Request(CDN), timeout=30, context=ctx)
body = r.read().decode('utf-8', 'ignore')
print('   HTTP %s ｜ 长度 %d ｜ 含 visitSetView=%s ｜ 含 风险提醒=%s ｜ 含 <title>' % (
    r.status, len(body), 'visitSetView' in body, '风险提醒' in body), body[body.find('<title>'):body.find('</title>') + 8][:80])
print('   响应头：')
for k, v in list(r.headers.items())[:10]:
    print('     %s: %s' % (k, str(v)[:90]))

print('\n② 浏览器（Chrome UA）取到什么')
with sync_playwright() as p:
    br = p.chromium.launch(channel='chrome', headless=True)
    pg = br.new_page(viewport={'width': 1280, 'height': 900})
    pg.goto(CDN, wait_until='load')
    pg.wait_for_timeout(2500)
    txt = pg.evaluate("() => (document.body.innerText||'')")
    print('   title=%r ｜ 长度 %d' % (pg.title()[:40], len(txt)))
    print('   ── 正文 ──')
    for ln in [x for x in txt.split('\n') if x.strip()][:14]:
        print('     ', ln[:120])
    btns = pg.evaluate("() => [...document.querySelectorAll('button,a')].map(e=>(e.innerText||'').trim()).filter(Boolean).slice(0,10)")
    print('   按钮/链接：', btns)
    pg.screenshot(path='/tmp/diag_risk.png', full_page=True)
    br.close()
print('\n截图 /tmp/diag_risk.png')
