mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
微调注释
This commit is contained in:
parent
4d41c3b993
commit
517da31d30
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
|
|
||||||
from warnings import filterwarnings
|
from warnings import filterwarnings
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
from .common import _location_in_viewport
|
from .common import _location_in_viewport
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, Tuple
|
from typing import Union, Tuple
|
||||||
|
|
||||||
from .chromium_base import ChromiumBase
|
from .chromium_base import ChromiumBase
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : base.py
|
|
||||||
"""
|
"""
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from re import sub
|
from re import sub
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from typing import Union, Tuple, List
|
from typing import Union, Tuple, List
|
||||||
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from json import loads
|
from json import loads
|
||||||
from time import perf_counter, sleep
|
from time import perf_counter, sleep
|
||||||
|
|
||||||
from requests import Session
|
from requests import Session
|
||||||
|
|
||||||
from .base import BasePage
|
from .base import BasePage
|
||||||
from .chromium_element import ChromiumElementWaiter, ChromeScroll, ChromiumElement, run_script
|
from .chromium_element import ChromiumElementWaiter, ChromeScroll, ChromiumElement, run_script, make_chromium_ele
|
||||||
from .common import get_loc
|
from .common import get_loc
|
||||||
from .config import cookies_to_tuple
|
from .config import cookies_to_tuple
|
||||||
from .session_element import make_session_ele
|
from .session_element import make_session_ele
|
||||||
@ -408,11 +412,7 @@ class ChromiumBase(BasePage):
|
|||||||
toIndex=count)
|
toIndex=count)
|
||||||
eles = []
|
eles = []
|
||||||
for i in nodeIds['nodeIds']:
|
for i in nodeIds['nodeIds']:
|
||||||
ele = ChromiumElement(self, node_id=i)
|
eles.append(make_chromium_ele(self, node_id=i))
|
||||||
if ele.tag in ('iframe', 'frame'):
|
|
||||||
from .chromium_frame import ChromiumFrame
|
|
||||||
ele = ChromiumFrame(self, ele)
|
|
||||||
eles.append(ele)
|
|
||||||
|
|
||||||
return eles[0] if single else eles
|
return eles[0] if single else eles
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, Tuple, List, Any
|
from typing import Union, Tuple, List, Any
|
||||||
|
|
||||||
from DataRecorder import Recorder
|
from DataRecorder import Recorder
|
||||||
|
@ -443,7 +443,7 @@ class ChromiumElement(DrissionElement):
|
|||||||
:param single: True则返回第一个,False则返回全部
|
:param single: True则返回第一个,False则返回全部
|
||||||
:return: ChromiumElement对象或文本、属性或其组成的列表
|
:return: ChromiumElement对象或文本、属性或其组成的列表
|
||||||
"""
|
"""
|
||||||
return make_chromium_ele(self, loc_or_str, single, timeout, relative=relative)
|
return find_in_chromium_ele(self, loc_or_str, single, timeout, relative=relative)
|
||||||
|
|
||||||
def style(self, style, pseudo_ele=''):
|
def style(self, style, pseudo_ele=''):
|
||||||
"""返回元素样式属性值,可获取伪元素属性值 \n
|
"""返回元素样式属性值,可获取伪元素属性值 \n
|
||||||
@ -1022,7 +1022,7 @@ class ChromiumShadowRootElement(BaseElement):
|
|||||||
if single:
|
if single:
|
||||||
node_id = self.page.run_cdp('DOM.querySelector',
|
node_id = self.page.run_cdp('DOM.querySelector',
|
||||||
nodeId=self._node_id, selector=css_paths[0], not_change=True)['nodeId']
|
nodeId=self._node_id, selector=css_paths[0], not_change=True)['nodeId']
|
||||||
return _make_chromium_ele(self.page, node_id=node_id) if node_id else None
|
return make_chromium_ele(self.page, node_id=node_id) if node_id else None
|
||||||
|
|
||||||
else:
|
else:
|
||||||
results = []
|
results = []
|
||||||
@ -1030,7 +1030,7 @@ class ChromiumShadowRootElement(BaseElement):
|
|||||||
node_id = self.page.run_cdp('DOM.querySelector',
|
node_id = self.page.run_cdp('DOM.querySelector',
|
||||||
nodeId=self._node_id, selector=i, not_change=True)['nodeId']
|
nodeId=self._node_id, selector=i, not_change=True)['nodeId']
|
||||||
if node_id:
|
if node_id:
|
||||||
results.append(_make_chromium_ele(self.page, node_id=node_id))
|
results.append(make_chromium_ele(self.page, node_id=node_id))
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def _get_node_id(self, obj_id):
|
def _get_node_id(self, obj_id):
|
||||||
@ -1046,7 +1046,7 @@ class ChromiumShadowRootElement(BaseElement):
|
|||||||
return self.page.run_cdp('DOM.describeNode', nodeId=node_id, not_change=True)['node']['backendNodeId']
|
return self.page.run_cdp('DOM.describeNode', nodeId=node_id, not_change=True)['node']['backendNodeId']
|
||||||
|
|
||||||
|
|
||||||
def make_chromium_ele(ele, loc, single=True, timeout=None, relative=True):
|
def find_in_chromium_ele(ele, loc, single=True, timeout=None, relative=True):
|
||||||
"""在chromium元素中查找 \n
|
"""在chromium元素中查找 \n
|
||||||
:param ele: ChromiumElement对象
|
:param ele: ChromiumElement对象
|
||||||
:param loc: 元素定位元组
|
:param loc: 元素定位元组
|
||||||
@ -1117,14 +1117,14 @@ def _find_by_xpath(ele, xpath, single, timeout, relative=True):
|
|||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
# return ChromiumElement(ele.page, obj_id=r['result']['objectId'])
|
# return ChromiumElement(ele.page, obj_id=r['result']['objectId'])
|
||||||
return _make_chromium_ele(ele.page, obj_id=r['result']['objectId'])
|
return make_chromium_ele(ele.page, obj_id=r['result']['objectId'])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if r['result']['description'] == 'NodeList(0)':
|
if r['result']['description'] == 'NodeList(0)':
|
||||||
return []
|
return []
|
||||||
else:
|
else:
|
||||||
r = ele.page.driver.Runtime.getProperties(objectId=r['result']['objectId'], ownProperties=True)['result']
|
r = ele.page.driver.Runtime.getProperties(objectId=r['result']['objectId'], ownProperties=True)['result']
|
||||||
return [_make_chromium_ele(ele.page, obj_id=i['value']['objectId'])
|
return [make_chromium_ele(ele.page, obj_id=i['value']['objectId'])
|
||||||
if i['value']['type'] == 'object' else i['value']['value']
|
if i['value']['type'] == 'object' else i['value']['value']
|
||||||
for i in r[:-1]]
|
for i in r[:-1]]
|
||||||
|
|
||||||
@ -1158,18 +1158,23 @@ def _find_by_css(ele, selector, single, timeout):
|
|||||||
if r['result']['subtype'] == 'null':
|
if r['result']['subtype'] == 'null':
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
return _make_chromium_ele(ele.page, obj_id=r['result']['objectId'])
|
return make_chromium_ele(ele.page, obj_id=r['result']['objectId'])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if r['result']['description'] == 'NodeList(0)':
|
if r['result']['description'] == 'NodeList(0)':
|
||||||
return []
|
return []
|
||||||
else:
|
else:
|
||||||
r = ele.page.driver.Runtime.getProperties(objectId=r['result']['objectId'], ownProperties=True)['result']
|
r = ele.page.driver.Runtime.getProperties(objectId=r['result']['objectId'], ownProperties=True)['result']
|
||||||
return [_make_chromium_ele(ele.page, obj_id=i['value']['objectId']) for i in r]
|
return [make_chromium_ele(ele.page, obj_id=i['value']['objectId']) for i in r]
|
||||||
|
|
||||||
|
|
||||||
def _make_chromium_ele(page, node_id=None, obj_id=None):
|
def make_chromium_ele(page, node_id=None, obj_id=None):
|
||||||
"""根据node id或object id生成相应元素对象"""
|
"""根据node id或object id生成相应元素对象 \n
|
||||||
|
:param page: ChromiumPage对象
|
||||||
|
:param node_id: 元素的node id
|
||||||
|
:param obj_id: 元素的object id
|
||||||
|
:return: ChromiumElement对象或ChromiumFrame对象
|
||||||
|
"""
|
||||||
ele = ChromiumElement(page, obj_id=obj_id, node_id=node_id)
|
ele = ChromiumElement(page, obj_id=obj_id, node_id=node_id)
|
||||||
if ele.tag in ('iframe', 'frame'):
|
if ele.tag in ('iframe', 'frame'):
|
||||||
from .chromium_frame import ChromiumFrame
|
from .chromium_frame import ChromiumFrame
|
||||||
@ -1290,7 +1295,7 @@ def _parse_js_result(page, ele, result):
|
|||||||
elif class_name == 'HTMLDocument':
|
elif class_name == 'HTMLDocument':
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
return _make_chromium_ele(page, obj_id=result['objectId'])
|
return make_chromium_ele(page, obj_id=result['objectId'])
|
||||||
|
|
||||||
elif sub_type == 'array':
|
elif sub_type == 'array':
|
||||||
r = page.driver.Runtime.getProperties(objectId=result['result']['objectId'], ownProperties=True)['result']
|
r = page.driver.Runtime.getProperties(objectId=result['result']['objectId'], ownProperties=True)['result']
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : chromium_element.py
|
|
||||||
"""
|
"""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union, Tuple, List, Any
|
from typing import Union, Tuple, List, Any
|
||||||
@ -321,7 +320,7 @@ class ChromiumShadowRootElement(BaseElement):
|
|||||||
def _get_backend_id(self, node_id: str) -> str: ...
|
def _get_backend_id(self, node_id: str) -> str: ...
|
||||||
|
|
||||||
|
|
||||||
def make_chromium_ele(ele: ChromiumElement,
|
def find_in_chromium_ele(ele: ChromiumElement,
|
||||||
loc: Union[str, Tuple[str, str]],
|
loc: Union[str, Tuple[str, str]],
|
||||||
single: bool = ...,
|
single: bool = ...,
|
||||||
timeout: float = ...,
|
timeout: float = ...,
|
||||||
@ -341,7 +340,7 @@ def _find_by_css(ele: ChromiumElement,
|
|||||||
timeout: float) -> Union[ChromiumElement, List[ChromiumElement], None]: ...
|
timeout: float) -> Union[ChromiumElement, List[ChromiumElement], None]: ...
|
||||||
|
|
||||||
|
|
||||||
def _make_chromium_ele(page: ChromiumBase, node_id: str = ..., obj_id: str = ...) -> ChromiumElement: ...
|
def make_chromium_ele(page: ChromiumBase, node_id: str = ..., obj_id: str = ...) -> Union[ChromiumElement, ChromiumFrame]: ...
|
||||||
|
|
||||||
|
|
||||||
def _make_js_for_find_ele_by_xpath(xpath: str, type_txt: str, node_txt: str) -> str: ...
|
def _make_js_for_find_ele_by_xpath(xpath: str, type_txt: str, node_txt: str) -> str: ...
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from re import search
|
from re import search
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, Tuple, List
|
from typing import Union, Tuple, List
|
||||||
|
|
||||||
from session_element import SessionElement
|
from session_element import SessionElement
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from platform import system
|
from platform import system
|
||||||
from re import search
|
from re import search
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from os import popen
|
from os import popen
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union, Tuple, List
|
from typing import Union, Tuple, List
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from .chromium_base import ChromiumBase
|
from .chromium_base import ChromiumBase
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from .chromium_base import ChromiumBase
|
from .chromium_base import ChromiumBase
|
||||||
from .chromium_page import ChromiumPage
|
from .chromium_page import ChromiumPage
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : common.py
|
|
||||||
"""
|
"""
|
||||||
from html import unescape
|
from html import unescape
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
"""
|
"""
|
||||||
管理配置的类
|
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : config.py
|
|
||||||
"""
|
"""
|
||||||
from configparser import RawConfigParser, NoSectionError, NoOptionError
|
from configparser import RawConfigParser, NoSectionError, NoOptionError
|
||||||
from http.cookiejar import Cookie
|
from http.cookiejar import Cookie
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from configparser import RawConfigParser
|
from configparser import RawConfigParser
|
||||||
from http.cookiejar import Cookie
|
from http.cookiejar import Cookie
|
||||||
from typing import Any, Union, List
|
from typing import Any, Union, List
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : drission.py
|
|
||||||
"""
|
"""
|
||||||
from platform import system
|
from platform import system
|
||||||
from sys import exit
|
from sys import exit
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : driver_element.py
|
|
||||||
"""
|
"""
|
||||||
from os import sep
|
from os import sep
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, List, Any, Tuple
|
from typing import Union, List, Any, Tuple
|
||||||
|
|
||||||
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
|
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : driver_page.py
|
|
||||||
"""
|
"""
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from os import sep
|
from os import sep
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, List, Any, Tuple
|
from typing import Union, List, Any, Tuple
|
||||||
|
|
||||||
from selenium.webdriver.chrome.webdriver import WebDriver
|
from selenium.webdriver.chrome.webdriver import WebDriver
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : driver_page.py
|
|
||||||
"""
|
"""
|
||||||
from os import popen
|
from os import popen
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import List, Tuple, Dict
|
from typing import List, Tuple, Dict
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : mix_page.py
|
|
||||||
"""
|
"""
|
||||||
from .base import BasePage
|
from .base import BasePage
|
||||||
from .drission import Drission
|
from .drission import Drission
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, List, Tuple, Any
|
from typing import Union, List, Tuple, Any
|
||||||
|
|
||||||
from DownloadKit import DownloadKit
|
from DownloadKit import DownloadKit
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : session_element.py
|
|
||||||
"""
|
"""
|
||||||
from re import match, DOTALL
|
from re import match, DOTALL
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, List, Tuple
|
from typing import Union, List, Tuple
|
||||||
|
|
||||||
from lxml.html import HtmlElement
|
from lxml.html import HtmlElement
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from re import search
|
from re import search
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Any, Union, Tuple, List
|
from typing import Any, Union, Tuple, List
|
||||||
|
|
||||||
from DownloadKit import DownloadKit
|
from DownloadKit import DownloadKit
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"""
|
"""
|
||||||
@Author : g1879
|
@Author : g1879
|
||||||
@Contact : g1879@qq.com
|
@Contact : g1879@qq.com
|
||||||
@File : shadow_root_element.py
|
|
||||||
"""
|
"""
|
||||||
from time import perf_counter
|
from time import perf_counter
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, Any, Tuple, List
|
from typing import Union, Any, Tuple, List
|
||||||
|
|
||||||
from selenium.webdriver.remote.webelement import WebElement
|
from selenium.webdriver.remote.webelement import WebElement
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from json import dumps, loads
|
from json import dumps, loads
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
"""
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
实用工具
|
实用工具
|
||||||
"""
|
"""
|
||||||
from FlowViewer import Listener, RequestMan
|
from FlowViewer import Listener, RequestMan
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
from requests import Session
|
from requests import Session
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
"""
|
||||||
|
@Author : g1879
|
||||||
|
@Contact : g1879@qq.com
|
||||||
|
"""
|
||||||
from typing import Union, Tuple, List, Any
|
from typing import Union, Tuple, List, Any
|
||||||
|
|
||||||
from DownloadKit import DownloadKit
|
from DownloadKit import DownloadKit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user