This commit is contained in:
2026-04-29 01:53:16 +03:00
commit ba6bfc5ed3
14 changed files with 1338 additions and 0 deletions

63
debug_cdn.py Normal file
View File

@@ -0,0 +1,63 @@
"""
Анализ HTTP 300-редиректов CDN one-way.work
"""
import asyncio
import sys
from pathlib import Path
sys.path.insert(0, '/app')
from src.browser import BrowserManager
from src.scraper import _extract_images_from_js, _navigate_with_retry
async def main():
url = "https://3.readmanga.ru/magicheskaia_bitva/vol1/1?mtr=1"
referer = "https://3.readmanga.ru/magicheskaia_bitva"
async with BrowserManager(headless=True) as bm:
ctx, page = await bm.new_page()
all_responses = {}
async def on_response(r):
if "one-way.work" in r.url or "staticfa" in r.url:
all_responses[r.url] = {
"status": r.status,
"headers": dict(r.headers),
}
page.on("response", on_response)
await _navigate_with_retry(page, url, referer=referer)
await asyncio.sleep(3)
imgs = await _extract_images_from_js(page)
print(f"Изображений в readerInit: {len(imgs)}")
print(f"Перехвачено ответов: {len(all_responses)}")
# Покажем первые несколько — статус и заголовки
for img_url, data in list(all_responses.items())[:5]:
print(f"\n--- {img_url[:80]} ---")
print(f" Status: {data['status']}")
for k, v in data['headers'].items():
if k.lower() in ('location', 'content-type', 'content-length', 'x-redirect', 'x-accel'):
print(f" {k}: {v}")
# Теперь попробуем прямой запрос через playwright request
print("\n\n=== Прямой запрос через context.request ===")
if imgs:
test_url = imgs[5]
print(f"URL: {test_url}")
try:
resp = await ctx.request.get(test_url, headers={"Referer": referer})
print(f"Status: {resp.status}")
print(f"Headers: {dict(resp.headers)}")
body = await resp.body()
print(f"Body size: {len(body)} bytes")
except Exception as e:
print(f"Error: {e}")
await ctx.close()
asyncio.run(main())