我正在尝试使用Python Cookie库,但它似乎不支持expire属性的标准日期格式(RFC 822)。例如,在Python提示中:
>>> import Cookie
>>> cookie = Cookie.SimpleCookie('bcookie="123"; Expires=Sat, 14-Jun-2014 23:03:13 GMT;')
>>> cookie['bcookie']['expires']
'Sat,'
这是标准标题,但它会将日期处理到第一个空格。难道我做错了什么?我需要完整的expire属性,并且如果我不需要,我将不得不编写自己的cookie库。
答案 0 :(得分:2)
根据Doug Hellman的优秀Python Module of the Week site正确用法是
c = Cookie.SimpleCookie()
expires = datetime.datetime.now() + datetime.timedelta(hours=1)
c['bcookie']['expires'] = expires.strftime('%a, %d %b %Y %H:%M:%S') # Wdy, DD-Mon-YY HH:MM:SS GMT
我甚至无法弄清楚你对SimpleCookie
的争论是什么,但PyMOTW是一个很好的辅助资源,因为主要文档可能有点密集。
答案 1 :(得分:1)
我在同样的问题上挣扎。我只是采用headers['set-cookie']
并创建Cookie.SimpleCookie
。
过了一会儿,我意识到我正在消费的网站没有引用日期。
这是我尝试的解决方案:
cookie = Cookie.SimpleCookie('bcookie="123"; Expires="Sat, 14-Jun-2014 23:03:13 GMT";')
不幸的是,这并没有解决我的核心问题。但是,至少我理解为什么。