[docs]classPatchrightFamily(BrowserFamily):""" Patchright — drop-in replacement for Playwright, supports only Chromium. Stealth is NOT needed/allowed (it is already built-in). """def__init__(self)->None:self._pw:Any|None=Noneself._browser:Any|None=None# кэшself._launch_opts_used:Dict[str,Any]|None=None@property
[docs]asyncdefstart(self,cfg:DesiredConfig)->None:assertcfg.family=="patchright","wrong family for PatchrightFamily"ifcfg.stealth:raiseRuntimeError("stealth is incompatible with engine='patchright'.")need_relaunch=(self._pwisNoneorself._browserisNoneorself._launch_opts_used!=cfg.launch_opts)ifneed_relaunch:awaitself.close()# мягко закрыть, если уже естьtry:frompatchright.async_apiimportasync_playwrightasasync_patchrightexceptException:raiseRuntimeError("engine='patchright', but the 'patchright' package is not installed. ""Install it with: pip install patchright")self._pw=awaitasync_patchright().__aenter__()launcher=self._pw.chromiumkwargs=dict(cfg.launch_opts)self._browser=awaitlauncher.launch(**kwargs)self._launch_opts_used=dict(cfg.launch_opts)