From 39f544eae4404aec3372c2dcfd8f1eaf2eef3c58 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Thu, 18 Dec 2025 01:13:31 +0200 Subject: [PATCH] feat(dynamicSession): add the option to set timezone of the browser --- scrapling/engines/_browsers/_base.py | 2 ++ scrapling/engines/_browsers/_config_tools.py | 2 ++ scrapling/engines/_browsers/_validators.py | 1 + 3 files changed, 5 insertions(+) diff --git a/scrapling/engines/_browsers/_base.py b/scrapling/engines/_browsers/_base.py index 7aa5aeb..fdb298c 100644 --- a/scrapling/engines/_browsers/_base.py +++ b/scrapling/engines/_browsers/_base.py @@ -281,6 +281,7 @@ class DynamicSessionMixin: self._wait_selector_state = config.wait_selector_state self._extra_flags = config.extra_flags self._selector_config = config.selector_config + self._timezone_id = config.timezone_id self._additional_args = config.additional_args self._page_action = config.page_action self._user_data_dir = config.user_data_dir @@ -304,6 +305,7 @@ class DynamicSessionMixin: self._stealth, self._hide_canvas, self._disable_webgl, + self._timezone_id, tuple(self._extra_flags) if self._extra_flags else tuple(), ) ) diff --git a/scrapling/engines/_browsers/_config_tools.py b/scrapling/engines/_browsers/_config_tools.py index 57e2f17..eaf28d6 100644 --- a/scrapling/engines/_browsers/_config_tools.py +++ b/scrapling/engines/_browsers/_config_tools.py @@ -70,6 +70,7 @@ def _launch_kwargs( stealth, hide_canvas, disable_webgl, + timezone_id, extra_flags: Tuple, ) -> Tuple: """Creates the arguments we will use while launching playwright's browser""" @@ -79,6 +80,7 @@ def _launch_kwargs( launch_kwargs = { "locale": locale, + "timezone_id": timezone_id or None, "headless": headless, "args": base_args, "color_scheme": "dark", # Bypasses the 'prefersLightColor' check in creepjs diff --git a/scrapling/engines/_browsers/_validators.py b/scrapling/engines/_browsers/_validators.py index a867a37..f8b9875 100644 --- a/scrapling/engines/_browsers/_validators.py +++ b/scrapling/engines/_browsers/_validators.py @@ -87,6 +87,7 @@ class PlaywrightConfig(Struct, kw_only=True, frozen=False, weakref=True): load_dom: bool = True wait_selector_state: SelectorWaitStates = "attached" user_data_dir: str = "" + timezone_id: str = "" extra_flags: Optional[List[str]] = None selector_config: Optional[Dict] = {} additional_args: Optional[Dict] = {}