From 81c53ba373377f58f458e99c029d007242e806ac Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 6 Jun 2022 17:07:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=80=A7=E5=8F=8Amitm=E6=9E=90=E6=9E=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/chrome.py | 6 ++++-- browser/edge.py | 5 +++-- browser/manager.py | 3 ++- main.py | 1 + proxy/manager.py | 7 +++++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/browser/chrome.py b/browser/chrome.py index 9a56539..5a44aa2 100644 --- a/browser/chrome.py +++ b/browser/chrome.py @@ -13,10 +13,12 @@ class ChromeDriver(IDriver): options = Options() if config()['webdriver']['headless']: options.add_argument("--headless") + options.add_argument("--window-size=1920,1080") options.add_argument('--proxy-server=%s:%s' % (config()['mitm']['host'], config()['mitm']['port'])) - options.add_argument('-ignore-certificate-errors') - options.add_argument('-ignore -ssl-errors') + options.add_argument('--ignore-certificate-errors') + options.add_argument('--ignore-ssl-errors') options.add_argument('--incognito') + options.add_experimental_option('excludeSwitches', ['ignore-certificate-errors']) if config()['webdriver']['chrome']['no_sandbox']: options.add_argument('--no-sandbox') proxy = Proxy() diff --git a/browser/edge.py b/browser/edge.py index 3764f02..c3618c7 100644 --- a/browser/edge.py +++ b/browser/edge.py @@ -13,9 +13,10 @@ class EdgeDriver(IDriver): options = Options() if config()['webdriver']['headless']: options.add_argument("--headless") + options.add_argument("--window-size=1920,1080") options.add_argument('--proxy-server=%s:%s' % (config()['mitm']['host'], config()['mitm']['port'])) - options.add_argument('-ignore-certificate-errors') - options.add_argument('-ignore -ssl-errors') + options.add_argument('--ignore-certificate-errors') + options.add_argument('--ignore-ssl-errors') options.add_argument('--incognito') proxy = Proxy() proxy.proxy_type = ProxyType.MANUAL diff --git a/browser/manager.py b/browser/manager.py index 41e2956..e436261 100644 --- a/browser/manager.py +++ b/browser/manager.py @@ -72,7 +72,8 @@ class BrowserManager(): self._tabs.append(tab_info) def terminate(self): - del self._driver + if self._driver: + del self._driver class TabInfo(object): diff --git a/main.py b/main.py index d684d99..43dbecd 100644 --- a/main.py +++ b/main.py @@ -16,6 +16,7 @@ if __name__ == '__main__': print("terminate") browser_manager.terminate() output_manager.terminate() + proxy_manager.terminate() atexit.register(terminate) diff --git a/proxy/manager.py b/proxy/manager.py index 6c418ff..41d2617 100644 --- a/proxy/manager.py +++ b/proxy/manager.py @@ -30,6 +30,13 @@ class ProxyManager: ) self._thread = None + def __del__(self): + self.terminate() + + def terminate(self): + if self._mitm_instance: + self._mitm_instance.shutdown() + def _load_addon(self): self._mitm_instance.addons.add(DanmakuWebsocketAddon(MESSAGE_QUEUE))