commit
This commit is contained in:
106
backend/test_proxy_playwright.py
Normal file
106
backend/test_proxy_playwright.py
Normal file
@@ -0,0 +1,106 @@
|
||||
"""
|
||||
测试Playwright使用代理访问HTTP和HTTPS网站
|
||||
"""
|
||||
import asyncio
|
||||
import warnings
|
||||
import sys
|
||||
from playwright.async_api import async_playwright
|
||||
from damai_proxy_config import get_proxy_1, format_proxy_for_playwright
|
||||
|
||||
# 抑制Windows下asyncio的资源警告
|
||||
warnings.filterwarnings('ignore', category=ResourceWarning)
|
||||
|
||||
async def test_proxy_with_playwright():
|
||||
"""使用Playwright测试代理"""
|
||||
|
||||
# 获取代理配置
|
||||
proxy_config = get_proxy_1()
|
||||
proxy = format_proxy_for_playwright(proxy_config)
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("Playwright代理测试")
|
||||
print("="*60)
|
||||
print(f"\n代理配置:")
|
||||
print(f" 服务器: {proxy['server']}")
|
||||
print(f" 用户名: {proxy['username']}")
|
||||
|
||||
playwright = None
|
||||
browser = None
|
||||
|
||||
try:
|
||||
playwright = await async_playwright().start()
|
||||
|
||||
print(f"\n启动浏览器...")
|
||||
browser = await playwright.chromium.launch(
|
||||
headless=True,
|
||||
proxy=proxy
|
||||
)
|
||||
|
||||
print(f"浏览器启动成功\n")
|
||||
|
||||
context = await browser.new_context()
|
||||
page = await context.new_page()
|
||||
|
||||
# 测试1: HTTP网站
|
||||
print("-"*60)
|
||||
print("测试1: 访问HTTP网站 (http://httpbin.org/ip)")
|
||||
print("-"*60)
|
||||
try:
|
||||
response = await page.goto("http://httpbin.org/ip", timeout=15000, wait_until="domcontentloaded")
|
||||
print(f"成功 - 状态码: {response.status}")
|
||||
content = await page.content()
|
||||
if 'origin' in content:
|
||||
print("页面包含IP信息\n")
|
||||
except Exception as e:
|
||||
print(f"失败: {str(e)}\n")
|
||||
|
||||
# 测试2: HTTPS网站
|
||||
print("-"*60)
|
||||
print("测试2: 访问HTTPS网站 (https://httpbin.org/ip)")
|
||||
print("-"*60)
|
||||
try:
|
||||
response = await page.goto("https://httpbin.org/ip", timeout=15000, wait_until="domcontentloaded")
|
||||
print(f"成功 - 状态码: {response.status}\n")
|
||||
except Exception as e:
|
||||
print(f"失败: {str(e)}\n")
|
||||
|
||||
# 测试3: 小红书HTTP
|
||||
print("-"*60)
|
||||
print("测试3: 访问小红书HTTP (http://xiaohongshu.com)")
|
||||
print("-"*60)
|
||||
try:
|
||||
response = await page.goto("http://xiaohongshu.com", timeout=15000, wait_until="domcontentloaded")
|
||||
print(f"成功 - 状态码: {response.status}")
|
||||
print(f"最终URL: {page.url}\n")
|
||||
except Exception as e:
|
||||
print(f"失败: {str(e)}\n")
|
||||
|
||||
# 测试4: 小红书HTTPS
|
||||
print("-"*60)
|
||||
print("测试4: 访问小红书HTTPS (https://xiaohongshu.com)")
|
||||
print("-"*60)
|
||||
try:
|
||||
response = await page.goto("https://xiaohongshu.com", timeout=15000, wait_until="domcontentloaded")
|
||||
print(f"成功 - 状态码: {response.status}\n")
|
||||
except Exception as e:
|
||||
print(f"失败: {str(e)}\n")
|
||||
|
||||
await context.close()
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n测试过程出错: {str(e)}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
if browser:
|
||||
await browser.close()
|
||||
if playwright:
|
||||
await playwright.stop()
|
||||
|
||||
print("="*60)
|
||||
print("测试完成")
|
||||
print("="*60 + "\n")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_proxy_with_playwright())
|
||||
Reference in New Issue
Block a user