From 3d04ab14053627b543ba907866d44f08f6a37595 Mon Sep 17 00:00:00 2001 From: g1879 Date: Thu, 4 Jun 2020 19:27:32 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81set=5Fpaths=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E8=B7=AF=E5=BE=84=E5=92=8C?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=B7=AF=E5=BE=84=202=E3=80=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0set=5Fproxy=E5=87=BD=E6=95=B0=203=E3=80=81=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E5=86=99set=5Fcomm=E5=87=BD=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/easy_set.py | 59 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/DrissionPage/easy_set.py b/DrissionPage/easy_set.py index 14d1b21..a9f1503 100644 --- a/DrissionPage/easy_set.py +++ b/DrissionPage/easy_set.py @@ -12,15 +12,19 @@ from DrissionPage.config import OptionsManager, DriverOptions def set_paths(driver_path: str = None, chrome_path: str = None, debugger_address: str = None, - global_tmp_path: str = None, + tmp_path: str = None, download_path: str = None, + uesr_data_path: str = None, + cache_path: str = None, check_version: bool = True) -> None: """简易设置路径函数 :param driver_path: chromedriver.exe路径 :param chrome_path: chrome.exe路径 :param debugger_address: 调试浏览器地址,例:127.0.0.1:9222 :param download_path: 下载文件路径 - :param global_tmp_path: 临时文件夹路径 + :param tmp_path: 临时文件夹路径 + :param uesr_data_path: 用户数据路径 + :param cache_path: 缓存路径 :param check_version: 是否检查chromedriver和chrome是否匹配 :return: None """ @@ -31,12 +35,36 @@ def set_paths(driver_path: str = None, om.set_item('chrome_options', 'binary_location', chrome_path) if debugger_address is not None: om.set_item('chrome_options', 'debugger_address', debugger_address) - if global_tmp_path is not None: - om.set_item('paths', 'global_tmp_path', global_tmp_path) + if tmp_path is not None: + om.set_item('paths', 'global_tmp_path', tmp_path) if download_path is not None: experimental_options = om.get_value('chrome_options', 'experimental_options') experimental_options['prefs']['download.default_directory'] = download_path om.set_item('chrome_options', 'experimental_options', experimental_options) + if uesr_data_path is not None or cache_path is not None: + arguments = list(om.get_value('chrome_options', 'arguments')) + up_ok = cp_ok = False + to_remove = [] # 待删设置,检查完再一次删,免得影响列表后面的元素 + for key, arg in enumerate(arguments): + if uesr_data_path is not None and '--user-data-dir' in arg: + if uesr_data_path == '': + to_remove.append(arg) + else: + arguments[key] = f'--user-data-dir={uesr_data_path}' + up_ok = True + if cache_path is not None and '--disk-cache-dir' in arg: + if cache_path == '': + to_remove.append(arg) + else: + arguments[key] = f'--disk-cache-dir={cache_path}' + cp_ok = True + for arg in to_remove: + arguments.remove(arg) + if uesr_data_path and not up_ok: + arguments.append(f'--user-data-dir={uesr_data_path}') + if cache_path and not cp_ok: + arguments.append(f'--disk-cache-dir={cache_path}') + om.set_item('chrome_options', 'arguments', arguments) om.save() if check_version: check_driver_version(driver_path, chrome_path) @@ -53,6 +81,29 @@ def set_headless(on_off: bool) -> None: do.save() +def set_proxy(proxy: str) -> None: + """设置代理""" + do = DriverOptions() + pr_ok = False + for key, arg in enumerate(do.arguments): + if '--proxy-server' in arg: + do.remove_argument(do.arguments[key]) + if proxy: + do.add_argument(f'--proxy-server={proxy}') + pr_ok = True + break + if not pr_ok: + do.add_argument(f'--proxy-server={proxy}') + do.save() + +def set_comm(value:str) -> None: + if value=='no_img': + pass + elif value=='mute': + pass + elif value=='': + pass + def check_driver_version(driver_path: str = None, chrome_path: str = None) -> bool: """检查传入的chrome和chromedriver是否匹配""" print('正在检测可用性...')