""" 测试AdsPower查询Cookie功能 """ import asyncio import sys from pathlib import Path # 添加项目路径 sys.path.insert(0, str(Path(__file__).parent)) from fingerprint_browser import get_fingerprint_manager from loguru import logger async def test_get_cookies(): """测试获取Cookie""" logger.info("="*50) logger.info("开始测试AdsPower Cookie查询功能") logger.info("="*50) manager = get_fingerprint_manager() # 检查AdsPower状态 if not await manager.check_adspower_status(): logger.error("❌ AdsPower未运行,请先启动AdsPower") return logger.success("✅ AdsPower运行正常") # 获取所有配置 logger.info("\n查询所有浏览器配置...") profiles = await manager.get_browser_profiles() if not profiles: logger.error("❌ 没有找到任何浏览器配置") return logger.success(f"✅ 找到 {len(profiles)} 个配置") # 显示配置列表 print("\n可用的配置列表:") for i, profile in enumerate(profiles[:5], 1): # 只显示前5个 profile_id = profile.get('user_id') or profile.get('id') profile_name = profile.get('name', 'unknown') print(f"{i}. ID: {profile_id}, 名称: {profile_name}") # 选择看起来像是小红书账号的配置 test_profile = None for profile in profiles: name = profile.get('name', '') if 'XHS' in name or '小红书' in name or '1570' in name: test_profile = profile break if not test_profile: # 如果没有找到,就用第一个 test_profile = profiles[0] profile_id = test_profile.get('user_id') or test_profile.get('id') profile_name = test_profile.get('name', 'unknown') logger.info("\n" + "="*50) logger.info(f"测试配置: {profile_name} (ID: {profile_id})") logger.info("="*50) # 查询Cookie logger.info("\n开始查询Cookie...") cookies = await manager.get_profile_cookies(profile_id) if cookies: logger.success(f"\n✅ 成功获取Cookie!") logger.info(f"Cookie数量: {len(cookies)}") # 显示前3个Cookie的详细信息 print("\n前3个Cookie详情:") for i, cookie in enumerate(cookies[:3], 1): print(f"\n{i}. {cookie.get('name', 'unknown')}") print(f" Domain: {cookie.get('domain', 'N/A')}") print(f" Path: {cookie.get('path', 'N/A')}") print(f" Value: {cookie.get('value', '')[:20]}..." if len(cookie.get('value', '')) > 20 else f" Value: {cookie.get('value', '')}") print(f" HttpOnly: {cookie.get('httpOnly', False)}") print(f" Secure: {cookie.get('secure', False)}") print(f" SameSite: {cookie.get('sameSite', 'N/A')}") # 统计Cookie域名分布 domains = {} for cookie in cookies: domain = cookie.get('domain', 'unknown') domains[domain] = domains.get(domain, 0) + 1 print("\nCookie域名分布:") for domain, count in sorted(domains.items(), key=lambda x: x[1], reverse=True)[:5]: print(f" {domain}: {count}个") else: logger.error("❌ 获取Cookie失败") logger.info("\n" + "="*50) logger.info("测试完成") logger.info("="*50) if __name__ == "__main__": asyncio.run(test_get_cookies())