Files
tophux_scrape/test_stealth_fix.py

68 lines
2.1 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试 playwright_stealth 修复
"""
import asyncio
from loguru import logger
from playwright.async_api import async_playwright
from playwright_stealth.stealth import Stealth
async def test_stealth():
"""测试 stealth 功能"""
logger.info("开始测试 playwright_stealth 功能")
try:
# 测试 Stealth 类导入和实例化
stealth = Stealth()
logger.success("Stealth 类实例化成功")
# 检查 Stealth 类的方法
methods = [m for m in dir(stealth) if 'apply' in m.lower()]
logger.info(f"Stealth 类包含的方法: {methods}")
# 测试 Playwright 浏览器启动
logger.info("测试 Playwright 浏览器启动...")
playwright = await async_playwright().start()
# 启动浏览器
browser = await playwright.chromium.launch(headless=True)
logger.success("Playwright 浏览器启动成功")
# 创建页面上下文
context = await browser.new_context()
page = await context.new_page()
logger.success("页面创建成功")
# 测试 stealth 应用
logger.info("测试应用 stealth 设置...")
await stealth.apply_stealth_async(page)
logger.success("stealth 设置应用成功")
# 关闭浏览器
await browser.close()
await playwright.stop()
logger.success("浏览器关闭成功")
logger.success("所有测试通过playwright_stealth 修复成功")
return True
except Exception as e:
logger.error(f"测试失败: {e}")
return False
async def main():
"""主函数"""
logger.info("=== playwright_stealth 修复测试 ===")
success = await test_stealth()
if success:
logger.info("✅ 修复成功!您现在可以正常运行 new_data_stealth.py")
logger.info("运行命令: python product/new_data_stealth.py")
else:
logger.error("❌ 修复失败,请检查错误信息")
if __name__ == "__main__":
asyncio.run(main())