From a5f3fee652dc9632b10bc334d67cce66ec9fa50a Mon Sep 17 00:00:00 2001 From: g1879 Date: Fri, 20 Nov 2020 17:34:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D.=E5=92=8C#=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/common.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/DrissionPage/common.py b/DrissionPage/common.py index 136baf3..22c9e5d 100644 --- a/DrissionPage/common.py +++ b/DrissionPage/common.py @@ -10,6 +10,7 @@ from pathlib import Path from re import split as re_SPLIT from shutil import rmtree from typing import Union +from zipfile import ZipFile from lxml.html import HtmlElement from selenium.webdriver.remote.webelement import WebElement @@ -102,15 +103,15 @@ def str_to_loc(loc: str) -> tuple: # .和#替换为class和id查找 if loc.startswith('.'): if loc.startswith(('.=', '.:',)): - loc.replace('.', '@class', 1) + loc = loc.replace('.', '@class', 1) else: - loc.replace('.', '@class=', 1) + loc = loc.replace('.', '@class=', 1) if loc.startswith('#'): if loc.startswith(('#=', '#:',)): - loc.replace('#', '@id', 1) + loc = loc.replace('#', '@id', 1) else: - loc.replace('#', '@id=', 1) + loc = loc.replace('#', '@id=', 1) # 根据属性查找 if loc.startswith('@'): @@ -281,3 +282,12 @@ def clean_folder(folder_path: str, ignore: list = None) -> None: f.unlink() elif f.is_dir(): rmtree(f, True) + + +def unzip(zip_path: str, to_path: str) -> Union[list, None]: + """解压下载的chromedriver.zip文件""" + if not zip_path: + return + + with ZipFile(zip_path, 'r') as f: + return [f.extract(f.namelist()[0], path=to_path)]