#!/usr/bin/env python3
"""
深入分析商品链接
"""

import asyncio
from playwright.async_api import async_playwright

COOKIES = [
    {"name": "gxyj_Sign-In-Token", "value": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb2RlIjpudWxsLCJ1c2VyX25hbWUiOm51bGwsImNvbXBhbnlOYW1lIjoiIiwiY2xpZW50X2lkIjoiVU5JRklDQVRJT04iLCJhY2NvdW50U3RhdHVzIjoxLCJpc0ZyZWV6ZSI6MiwidWlkIjoiMTM5OTkwNzMxMDg5NzI4NDUyOCIsInB1cmNoYXNlclByb3BlcnR5IjowLCJjb21wYW55Tm8iOiIzMDAwMTA2MDE3IiwiZ3JhbnRfdHlwZSI6Im11bHRpX3Bhc3N3b3JkIiwic2NvcGUiOlsiYWxsIl0sImxvZ2luTmFtZSI6ImNoaW5hZGF2aWQiLCJleHAiOjE3NzMxOTgyNzEsImp0aSI6IjJmM2FiMGZhLTg2MGItNGVlNS05MTM2LThjNDU4MGIzZjRlNSIsInN0YXRpb25JZCI6IjEiLCJhZG1pblR5cGUiOjEsImN1cnJlbnRTdGF0aW9uSWQiOiIxIiwiYWNjb3VudFR5cGUiOiIzIiwiYWNjTm8iOiJBQ0MyNjAzMTAzMDAwMDAwMDAwMDAwMDcyIiwiY29tcGFueVN0YXR1cyI6MSwiYXV0aG9yaXRpZXMiOlsicm9vdCJdLCJhdWQiOlsiMSJdLCJwaG9uZSI6IjE4MTEwMDc4NzYyIiwibWFpbklkIjoiMTM5OTkwNzMxMDg5NzI4NDUzMCIsInVzZXJuYW1lIjoiY2hpbmFkYXZpZCJ9.CctYfcFiUdPUdmXEV7StkAU9PlAWgM-0v4dk6L6beV3SK93HT-b5g9tHIpO45CZTPa2pXw3GMK5X3dg6v5Y9Olxl35DAXYWhQVC2NjI-qkpOIfSSBM8i-DXR_HyIWpyeXWJBTWk4BdWZZPt8wkWzD5SGwM2-whcVQt5phsDrB8c", "domain": ".fupin832.com"},
]

async def main():
    print("🔍 深入分析商品链接...")
    
    pw = await async_playwright().start()
    browser = await pw.chromium.launch(headless=True, args=['--no-sandbox'])
    context = await browser.new_context(viewport={"width": 1920, "height": 1080})
    
    for c in COOKIES:
        await context.add_cookies([{"name": c["name"], "value": c["value"], "domain": c["domain"], "path": "/"}])
    
    page = await context.new_page()
    
    await page.goto("https://ys.fupin832.com/product/list?areaCode=410000", timeout=30000)
    await page.wait_for_load_state("networkidle")
    await page.wait_for_timeout(3000)
    
    # 分析所有链接
    links_info = await page.evaluate("""() => {
        const result = {
            allUrls: [],
            productUrls: [],
            detailUrls: []
        };
        
        // 所有链接
        document.querySelectorAll('a[href]').forEach(a => {
            result.allUrls.push(a.href);
            
            // 包含product或detail的
            if (a.href.includes('product') || a.href.includes('detail') || a.href.includes('goods')) {
                result.productUrls.push({
                    href: a.href,
                    text: (a.innerText || '').trim().substring(0, 50)
                });
            }
        });
        
        // 去重
        result.allUrls = [...new Set(result.allUrls)];
        
        return result;
    }""")
    
    print(f"\n📊 链接分析:")
    print(f"  总链接数: {len(links_info.get('allUrls', []))}")
    print(f"  商品相关链接: {len(links_info.get('productUrls', []))}")
    
    print(f"\n🔗 商品相关链接:")
    for i, link in enumerate(links_info.get('productUrls', [])[:30], 1):
        print(f"  {i}. {link.get('href', '')[:60]}")
        print(f"     文本: {link.get('text', '')}")
    
    # 检查是否是动态加载的内容
    print(f"\n📡 检查动态加载...")
    
    # 获取所有带价格的div
    price_divs = await page.evaluate("""() => {
        const results = [];
        document.querySelectorAll('div').forEach(div => {
            const text = div.innerText || '';
            if (text.includes('￥') && text.length < 300 && text.length > 10) {
                results.push(text.substring(0, 200));
            }
        });
        return results.slice(0, 20);
    }""")
    
    print(f"\n💰 包含价格的DIV (前20个):")
    for i, text in enumerate(price_divs, 1):
        print(f"\n  [{i}] {text}")
    
    await browser.close()

asyncio.run(main())
