ebook-executor / hf_backend /test_edge_browser.py
fromozu's picture
Upload hf_backend/test_edge_browser.py with huggingface_hub
9962df5 verified
#!/usr/bin/env python3
"""
使用 Edge 浏览器尝试,看是否能绕过 DDoS-Guard
"""
from playwright.sync_api import sync_playwright
import time
MD5 = "d94c20d1364af9b484949659398c4062"
SLOW_URL = f"https://annas-archive.gl/slow_download/{MD5}/0/3"
def try_edge_browser():
"""使用 Edge 浏览器"""
print(f"目标: {SLOW_URL}\n")
with sync_playwright() as p:
try:
# 尝试启动 Edge
browser = p.edge.launch(headless=False)
print("使用 Edge 浏览器")
except:
# 如果 Edge 不可用,使用 Chromium
browser = p.chromium.launch(headless=False)
print("Edge 不可用,使用 Chromium")
context = browser.new_context(
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0",
viewport={"width": 1920, "height": 1080},
)
page = context.new_page()
print("访问 slow_download...")
page.goto(SLOW_URL, timeout=120000, wait_until="domcontentloaded")
print(f"初始标题: {page.title()}")
# 等待最多60秒
for i in range(60):
time.sleep(1)
try:
title = page.title()
url = page.url
if url.lower().endswith('.epub'):
print(f"\n在第{i+1}秒发现EPUB: {url}")
browser.close()
return url
if title != "DDoS-Guard":
print(f"\n在第{i+1}秒: 标题={title}")
if (i + 1) % 15 == 0:
print(f" {i+1}秒... URL: {url[:60]}...")
except Exception as e:
print(f" {i+1}秒... (导航中)")
continue
print(f"\n最终URL: {page.url}")
browser.close()
return None
if __name__ == "__main__":
print("=" * 60)
print("使用 Edge 浏览器测试")
print("=" * 60)
result = try_edge_browser()
if result:
print(f"\n成功: {result}")
else:
print("\n失败")