python - 是新浪微博的cookies格式不对还是http.cookies的bug?
高洛峰
高洛峰 2017-04-18 10:25:51
0
1
478

登录新浪微博时获取到cookies的expiresSaturday, 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<key>                       # 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<val>                         # 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库解析时没有有题。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(1)
阿神

It should be that Sina wrote Sat and the browser will display it as complete

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template