persist raw attributes and tighten sync assertions

This commit is contained in:
qananasikq
2026-04-08 14:30:57 +03:00
parent b2d3902bcc
commit 447a88feed
7 changed files with 112 additions and 13 deletions

View File

@@ -22,10 +22,10 @@ class NetworkCapture:
_seen_resp: set[str] = field(default_factory=set)
_origin: str | None = None
def attach(self, page: Page) -> None:
def attach(self, page: Page, origin_url: str | None = None) -> None:
# Подписываемся на request/response события страницы.
try:
self._origin = urlparse(page.url).netloc.lower() or None
self._origin = urlparse(origin_url or page.url).netloc.lower() or None
except Exception:
self._origin = None
page.on("request", self._on_request)
@@ -47,7 +47,7 @@ class NetworkCapture:
if len(self.requests) >= self.settings.gentle.max_requests:
return
key = f"{request.method}:{request.url}:{request.post_data or ''}"
# Дедупликация одинаковых запросов.
# Дедупликация одинаковых запросов.
if key in self._seen_req:
return
self._seen_req.add(key)
@@ -95,7 +95,7 @@ class NetworkCapture:
@staticmethod
def _categorize(url: str) -> str:
# Простая эвристика для разбивки ответов по смыслу.
# Простая эвристика для разбивки ответов по смыслу.
low = url.lower()
mapping = {
"images": ["image", "media", "photos", "gallery"],