搜尋

首頁  >  問答  >  主體

python - 是新浪微博的cookies格式不对还是http.cookies的bug?

登录新浪微博时获取到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库解析时没有有题。

高洛峰高洛峰2766 天前477

全部回覆(1)我來回復

  • 阿神

    阿神2017-04-18 10:27:51

    應該是新浪寫的是 Sat 而瀏覽器顯示會補全

    回覆
    0
  • 取消回覆