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

67
debug_site.py Normal file
View File

@@ -0,0 +1,67 @@
"""
Диагностический скрипт: снимает скриншот страницы и сохраняет HTML.
Аргументы:
1: URL страницы (обязательный)
2: Referer (опциональный, по умолчанию — домен из URL)
"""
import asyncio
import sys
from pathlib import Path
sys.path.insert(0, '/app')
from src.browser import BrowserManager
from urllib.parse import urlparse
async def main(url: str, referer: str | None = None):
async with BrowserManager(headless=True) as bm:
ctx, page = await bm.new_page()
# Слушаем все ответы
async def on_response(r):
print(f" [{r.status}] {r.url[:120]}")
page.on("response", on_response)
p = urlparse(url)
if referer is None:
referer = f"{p.scheme}://{p.netloc}/"
print(f"\n=== Открываем: {url} ===")
print(f"=== Referer: {referer} ===\n")
try:
resp = await page.goto(url, wait_until="domcontentloaded",
timeout=30_000, referer=referer)
print(f"\nСтатус ответа: {resp.status if resp else 'нет'}")
print(f"Финальный URL: {page.url}")
except Exception as e:
print(f"Ошибка goto: {e}")
# Ждём немного JS
try:
await page.wait_for_load_state("networkidle", timeout=15_000)
except Exception:
pass
# Скриншот
out = Path("/app/output/debug_screenshot.png")
out.parent.mkdir(exist_ok=True)
await page.screenshot(path=str(out), full_page=False)
print(f"\nСкриншот сохранён: {out}")
print(f"Title: {await page.title()}")
# Сохраняем HTML
html = await page.content()
html_out = Path("/app/output/debug_page.html")
html_out.write_text(html)
print(f"HTML сохранён: {html_out} ({len(html)} байт)")
print(f"\n=== HTML (первые 3000 символов) ===")
print(html[:3000])
await ctx.close()
if __name__ == "__main__":
url = sys.argv[1] if len(sys.argv) > 1 else "https://3.readmanga.ru/magicheskaia_bitva"
ref = sys.argv[2] if len(sys.argv) > 2 else None
asyncio.run(main(url, ref))