From 99fc7d650a9ac5ba259c86817ca1099cee25e363 Mon Sep 17 00:00:00 2001 From: g1879 Date: Fri, 4 Dec 2020 18:03:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96cookies=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/drission.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/DrissionPage/drission.py b/DrissionPage/drission.py index 0b88c50..8be5cc6 100644 --- a/DrissionPage/drission.py +++ b/DrissionPage/drission.py @@ -184,13 +184,23 @@ class Drission(object): if 'expiry' in cookie: cookie['expiry'] = int(cookie['expiry']) - cookie_domain = cookie['domain'] if cookie['domain'][0] != '.' else cookie['domain'][1:] - try: browser_domain = extract(self.driver.current_url).fqdn except AttributeError: browser_domain = '' + if not cookie.get('domain', None): + if browser_domain: + url = extract(browser_domain) + cookie_domain = f'{url.domain}.{url.suffix}' + else: + raise ValueError('There is no domain name in the cookie or the browser has not visited a URL.') + + cookie['domain'] = cookie_domain + + else: + cookie_domain = cookie['domain'] if cookie['domain'][0] != '.' else cookie['domain'][1:] + if cookie_domain not in browser_domain: self.driver.get(cookie_domain if cookie_domain.startswith('http://') else f'http://{cookie_domain}')