diff --git a/DrissionPage/_commons/web.py b/DrissionPage/_commons/web.py index 5c1d182..2a726b3 100644 --- a/DrissionPage/_commons/web.py +++ b/DrissionPage/_commons/web.py @@ -3,6 +3,7 @@ @Author : g1879 @Contact : g1879@qq.com """ +from datetime import datetime from html import unescape from http.cookiejar import Cookie from re import sub @@ -250,7 +251,19 @@ def set_browser_cookies(page, cookies): cookie['expires'] = int(cookie['expiry']) cookie.pop('expiry') if 'expires' in cookie: - cookie['expires'] = int(cookie['expires']) + if cookie['expires'].isdigit(): + cookie['expires'] = int(cookie['expires']) + + elif cookie['expires'].replace('.', '').isdigit(): + cookie['expires'] = float(cookie['expires']) + + else: + try: + cookie['expires'] = datetime.strptime(cookie['expires'], + '%a, %d %b %Y %H:%M:%S GMT').timestamp() + except ValueError: + cookie['expires'] = datetime.strptime(cookie['expires'], + '%a, %d %b %y %H:%M:%S GMT').timestamp() if cookie['value'] is None: cookie['value'] = '' if cookie['name'].startswith('__Secure-'): diff --git a/DrissionPage/_units/listener.py b/DrissionPage/_units/listener.py index 2e7e4d8..a864db9 100644 --- a/DrissionPage/_units/listener.py +++ b/DrissionPage/_units/listener.py @@ -43,11 +43,11 @@ class Listener(object): """返回监听目标""" return self._targets - def set_targets(self, targets=True, is_regex=False, method=None): + def set_targets(self, targets=True, is_regex=False, method=('GET', 'POST')): """指定要等待的数据包 :param targets: 要匹配的数据包url特征,可用list等传入多个,为True时获取所有 :param is_regex: 设置的target是否正则表达式 - :param method: 设置监听的请求类型,可用list等指定多个,为None时监听全部 + :param method: 设置监听的请求类型,可指定多个,为None时监听全部 :return: None """ if targets is not None: @@ -68,11 +68,11 @@ class Listener(object): else: raise TypeError('method参数只能是str、list、tuple、set类型。') - def start(self, targets=None, is_regex=False, method=None): + def start(self, targets=None, is_regex=False, method=('GET', 'POST')): """拦截目标请求,每次拦截前清空结果 :param targets: 要匹配的数据包url特征,可用list等传入多个,为True时获取所有 :param is_regex: 设置的target是否正则表达式 - :param method: 设置监听的请求类型,可用list等指定多个,为None时监听全部 + :param method: 设置监听的请求类型,可指定多个,为None时监听全部 :return: None """ if targets or method: