From 4c392aa7077f1cdb56ea65845d331b2ec199fbbf Mon Sep 17 00:00:00 2001 From: g1879 Date: Mon, 30 Nov 2020 06:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84cookies=E6=96=B9=E9=9D=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=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/config.py | 15 ++++++++++----- DrissionPage/drission.py | 24 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/DrissionPage/config.py b/DrissionPage/config.py index e8f59ff..5ed4c47 100644 --- a/DrissionPage/config.py +++ b/DrissionPage/config.py @@ -726,10 +726,15 @@ def _session_options_to_dict(options: Union[dict, SessionOptions, None]) -> Unio def _cookie_to_dict(cookie: Cookie) -> dict: - # TODO: 其它值? - cookie_dict = {'name': cookie.name, 'value': str(cookie.value), 'path': cookie.path, 'domain': cookie.domain} + # cookie_dict = {'name': cookie.name, 'value': str(cookie.value), 'path': cookie.path, 'domain': cookie.domain} - if cookie.expires: - cookie_dict['expiry'] = cookie.expires + # if cookie.expires: + # cookie_dict['expiry'] = cookie.expires - return cookie_dict + # return cookie_dict + if isinstance(cookie, Cookie): + return cookie.__dict__ + elif isinstance(cookie, dict): + return cookie + else: + raise TypeError diff --git a/DrissionPage/drission.py b/DrissionPage/drission.py index 3ee6837..4146312 100644 --- a/DrissionPage/drission.py +++ b/DrissionPage/drission.py @@ -155,6 +155,30 @@ class Drission(object): for cookie in cookies: self._ensure_add_cookie(cookie) + def set_cookies(self, + cookies: Union[RequestsCookieJar, list, tuple], + set_session: bool = False, + set_driver: bool = False): + if isinstance(cookies, (list, tuple, RequestsCookieJar)): + cookies = tuple(_cookie_to_dict(cookie) for cookie in cookies) + else: + raise TypeError + + if set_session: + pass + + if set_driver: + pass + + def add_cookie(self): + pass + + def remove_cookie(self): + pass + + def clear_cookies(self): + pass + def _set_session(self, data: dict) -> None: if self._session is None: self._session = Session()