Spaces:
Paused
Paused
| #!/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失败") |