|
1 | 1 | import asyncio
|
| 2 | +import logging |
2 | 3 | from time import time
|
3 | 4 | from typing import Callable, Optional, Type, TypeVar
|
4 | 5 | from urllib.parse import urlparse
|
|
25 | 26 | PlaywrightHandler = TypeVar("PlaywrightHandler", bound="ScrapyPlaywrightDownloadHandler")
|
26 | 27 |
|
27 | 28 |
|
| 29 | +logger = logging.getLogger(__name__) |
| 30 | + |
| 31 | + |
28 | 32 | def _make_request_handler(
|
29 | 33 | browser_type: str,
|
30 | 34 | scrapy_request: Request,
|
@@ -94,21 +98,26 @@ def from_crawler(cls: Type[PlaywrightHandler], crawler: Crawler) -> PlaywrightHa
|
94 | 98 | return cls(crawler)
|
95 | 99 |
|
96 | 100 | def _engine_started(self) -> Deferred:
|
| 101 | + logger.info("Launching browser") |
97 | 102 | return deferred_from_coro(self._launch_browser())
|
98 | 103 |
|
99 | 104 | async def _launch_browser(self) -> None:
|
100 | 105 | self.playwright_context_manager = playwright.AsyncPlaywrightContextManager()
|
101 | 106 | self.playwright = await self.playwright_context_manager.start()
|
102 | 107 | browser_launcher = getattr(self.playwright, self.browser_type).launch
|
103 | 108 | self.browser = await browser_launcher(**self.launch_options)
|
| 109 | + logger.info(f"Browser {self.browser_type} launched with options: {self.launch_options}") |
104 | 110 | self.context = await self.browser.newContext(**self.context_args)
|
| 111 | + logger.info(f"Browser context started with args: {self.context_args}") |
105 | 112 |
|
106 | 113 | @inlineCallbacks
|
107 | 114 | def close(self) -> Deferred:
|
108 | 115 | yield super().close()
|
109 | 116 | if getattr(self, "context", None):
|
| 117 | + logger.info("Closing browser context") |
110 | 118 | yield deferred_from_coro(self.context.close())
|
111 | 119 | if getattr(self, "browser", None):
|
| 120 | + logger.info("Closing browser") |
112 | 121 | yield deferred_from_coro(self.browser.close())
|
113 | 122 | yield deferred_from_coro(self.playwright_context_manager.__aexit__())
|
114 | 123 |
|
|
0 commit comments