Skip to content

Commit e20cf66

Browse files
committed
Increment request stats in event handler
1 parent b228a9e commit e20cf66

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

scrapy_playwright/handler.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,9 @@ async def _create_page(self, request: Request) -> Page:
128128
context = await self._create_browser_context(context_name, context_kwargs)
129129
self.contexts[context_name] = context
130130
page = await context.new_page()
131-
page.on("request", _make_request_logger(context_name))
132131
page.on("response", _make_response_logger(context_name))
132+
page.on("request", _make_request_logger(context_name))
133+
page.on("request", self._increment_request_stats)
133134
self.stats.inc_value("playwright/page_count")
134135
if self.default_navigation_timeout:
135136
page.set_default_navigation_timeout(self.default_navigation_timeout)
@@ -227,6 +228,14 @@ async def _download_request_with_page(self, request: Request, page: Page) -> Res
227228
flags=["playwright"],
228229
)
229230

231+
def _increment_request_stats(self, request: PlaywrightRequest) -> None:
232+
stats_prefix = "playwright/request_count"
233+
self.stats.inc_value(stats_prefix)
234+
self.stats.inc_value(f"{stats_prefix}/resource_type/{request.resource_type}")
235+
self.stats.inc_value(f"{stats_prefix}/method/{request.method}")
236+
if request.is_navigation_request():
237+
self.stats.inc_value(f"{stats_prefix}/navigation")
238+
230239
def _make_close_browser_context_callback(self, name: str) -> Callable:
231240
def close_browser_context_callback() -> None:
232241
logger.debug("Browser context closed: '%s'", name)
@@ -254,12 +263,5 @@ def request_handler(route: Route, pw_request: PlaywrightRequest) -> None:
254263
if headers.get("user-agent"):
255264
overrides["headers"]["user-agent"] = headers["user-agent"]
256265
asyncio.create_task(route.continue_(**overrides))
257-
# increment stats
258-
self.stats.inc_value("playwright/request_count")
259-
resource_type = pw_request.resource_type
260-
self.stats.inc_value(f"playwright/request_count/resource_type/{resource_type}")
261-
self.stats.inc_value(f"playwright/request_count/method/{pw_request.method}")
262-
if pw_request.is_navigation_request():
263-
self.stats.inc_value("playwright/request_count/navigation")
264266

265267
return request_handler

0 commit comments

Comments
 (0)