From 4cbbf1dee1e4a0e1f9718c59f77527e9a87b9614 Mon Sep 17 00:00:00 2001 From: g1879 Date: Fri, 15 Mar 2024 01:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/_configs/session_options.py | 4 ++-- DrissionPage/_configs/session_options.pyi | 4 ++-- DrissionPage/_functions/web.py | 10 ++++------ DrissionPage/_units/cookies_setter.py | 2 -- DrissionPage/_units/cookies_setter.pyi | 10 ++++------ 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/DrissionPage/_configs/session_options.py b/DrissionPage/_configs/session_options.py index d5e60e4..ee9b0f8 100644 --- a/DrissionPage/_configs/session_options.py +++ b/DrissionPage/_configs/session_options.py @@ -213,8 +213,8 @@ class SessionOptions(object): return self._cookies def set_cookies(self, cookies): - """设置cookies信息 - :param cookies: cookies,可为CookieJar, list, tuple, str, dict,传入None可在ini文件标记删除 + """设置一个或多个cookies信息 + :param cookies: cookies,可为Cookie, CookieJar, list, tuple, str, dict,传入None可在ini文件标记删除 :return: 返回当前对象 """ cookies = cookies if cookies is None else list(cookies_to_tuple(cookies)) diff --git a/DrissionPage/_configs/session_options.pyi b/DrissionPage/_configs/session_options.pyi index 6875e28..54a88af 100644 --- a/DrissionPage/_configs/session_options.pyi +++ b/DrissionPage/_configs/session_options.pyi @@ -5,13 +5,13 @@ @Copyright: (c) 2024 by g1879, Inc. All Rights Reserved. @License : BSD 3-Clause. """ +from http.cookiejar import CookieJar, Cookie from pathlib import Path from typing import Any, Union, Tuple, Optional from requests import Session from requests.adapters import HTTPAdapter from requests.auth import HTTPBasicAuth -from requests.cookies import RequestsCookieJar from requests.structures import CaseInsensitiveDict @@ -60,7 +60,7 @@ class SessionOptions(object): @property def cookies(self) -> list: ... - def set_cookies(self, cookies: Union[RequestsCookieJar, list, tuple, str, dict, None]) -> SessionOptions: ... + def set_cookies(self, cookies: Union[Cookie, CookieJar, list, tuple, str, dict, None]) -> SessionOptions: ... @property def auth(self) -> Union[Tuple[str, str], HTTPBasicAuth]: ... diff --git a/DrissionPage/_functions/web.py b/DrissionPage/_functions/web.py index f84f170..bbda044 100644 --- a/DrissionPage/_functions/web.py +++ b/DrissionPage/_functions/web.py @@ -7,11 +7,10 @@ """ from datetime import datetime from html import unescape -from http.cookiejar import Cookie +from http.cookiejar import Cookie, CookieJar from re import sub from urllib.parse import urlparse, urljoin, urlunparse -from requests.cookies import RequestsCookieJar from tldextract import extract @@ -203,7 +202,7 @@ def cookies_to_tuple(cookies): :param cookies: cookies信息,可为CookieJar, list, tuple, str, dict :return: 返回tuple形式的cookies """ - if isinstance(cookies, (list, tuple, RequestsCookieJar)): + if isinstance(cookies, (list, tuple, CookieJar)): cookies = tuple(cookie_to_dict(cookie) for cookie in cookies) elif isinstance(cookies, str): @@ -220,7 +219,7 @@ def cookies_to_tuple(cookies): cookies = (cookie_to_dict(cookies),) else: - raise TypeError('cookies参数必须为RequestsCookieJar、list、tuple、str或dict类型。') + raise TypeError('cookies参数必须为Cookie、CookieJar、list、tuple、str或dict类型。') return cookies @@ -231,8 +230,7 @@ def set_session_cookies(session, cookies): :param cookies: cookies信息 :return: None """ - cookies = cookies_to_tuple(cookies) - for cookie in cookies: + for cookie in cookies_to_tuple(cookies): if cookie['value'] is None: cookie['value'] = '' diff --git a/DrissionPage/_units/cookies_setter.py b/DrissionPage/_units/cookies_setter.py index 63afbb0..c9d3c41 100644 --- a/DrissionPage/_units/cookies_setter.py +++ b/DrissionPage/_units/cookies_setter.py @@ -5,8 +5,6 @@ @Copyright: (c) 2024 by g1879, Inc. All Rights Reserved. @License : BSD 3-Clause. """ -from http.cookiejar import Cookie - from .._functions.web import set_browser_cookies, set_session_cookies diff --git a/DrissionPage/_units/cookies_setter.pyi b/DrissionPage/_units/cookies_setter.pyi index fea2f13..cbe37de 100644 --- a/DrissionPage/_units/cookies_setter.pyi +++ b/DrissionPage/_units/cookies_setter.pyi @@ -5,11 +5,9 @@ @Copyright: (c) 2024 by g1879, Inc. All Rights Reserved. @License : BSD 3-Clause. """ -from http.cookiejar import Cookie +from http.cookiejar import Cookie, CookieJar from typing import Union -from requests.cookies import RequestsCookieJar - from .._pages.chromium_base import ChromiumBase from .._pages.chromium_tab import WebPageTab from .._pages.session_page import SessionPage @@ -21,7 +19,7 @@ class CookiesSetter(object): def __init__(self, page: ChromiumBase): ... - def __call__(self, cookies: Union[RequestsCookieJar, Cookie, list, tuple, str, dict]) -> None: ... + def __call__(self, cookies: Union[CookieJar, Cookie, list, tuple, str, dict]) -> None: ... def remove(self, name: str, url: str = None, domain: str = None, path: str = None) -> None: ... @@ -33,7 +31,7 @@ class SessionCookiesSetter(object): def __init__(self, page: SessionPage): ... - def __call__(self, cookies: Union[RequestsCookieJar, Cookie, list, tuple, str, dict]) -> None: ... + def __call__(self, cookies: Union[CookieJar, Cookie, list, tuple, str, dict]) -> None: ... def remove(self, name: str) -> None: ... @@ -45,7 +43,7 @@ class WebPageCookiesSetter(CookiesSetter, SessionCookiesSetter): def __init__(self, page: SessionPage): ... - def __call__(self, cookies: Union[RequestsCookieJar, Cookie, list, tuple, str, dict]) -> None: ... + def __call__(self, cookies: Union[CookieJar, Cookie, list, tuple, str, dict]) -> None: ... def remove(self, name: str, url: str = None, domain: str = None, path: str = None) -> None: ...