登录新浪微博时获取到cookies的expires
是Saturday, 06-Mar-2027 02:32:46 GMT;
这样的格式,但是http.cookies
库解析时expires
的需要的格式是Sat, 06-Mar-2027 02:32:46 GMT;
,使用的正则表达式如下:
_CookiePattern = re.compile(r""" \s* # Optional whitespace at start of cookie (?P# Start of group 'key' [""" + _LegalKeyChars + r"""]+? # Any word of at least one letter ) # End of group 'key' ( # Optional group: there may not be a value. \s*=\s* # Equal Sign (?P # Start of group 'val' "(?:[^\\"]|\\.)*" # Any doublequoted string | # or \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT # Special case for "expires" attr | # or [""" + _LegalValueChars + r"""]* # Any word or empty string ) # End of group 'val' )? # End of optional value group \s* # Any number of spaces. (\s+|;|$) # Ending either at space, semicolon, or EOS. """, re.ASCII | re.VERBOSE) # re.ASCII may be removed if safe.
这个正则表达式解析微博cookies时会在expries
处出错,需要把\w{3}
改成\w{3,9}
才能正确解析微博的cookies。
我想问的是http有对expries规定格式吗?这个bug是属于新浪不按格式还是http.cookies解析不兼容?而使用requests库解析时没有有题。
应该是新浪写的就是 Sat 而浏览器显示会补全