MozillacookieJar继承自
FilecookieJar其构造函数中的以下docstring:
cookies are NOT loaded from the named file until either the .load() or.revert() method is called.
然后,您需要调用
.load()方法。
同样,就像Jermaine Xu一样,文件的第一行需要包含
# Netscape HTTP cookie File或
# HTTP cookieFile字符串。您使用的插件生成的文件不包含这样的字符串,因此您必须自己插入它。我在http://pre.google.com/p/cookie-
txt-export/issues/detail?id=5上提出了适当的错误
编辑
会话cookie在第5列中保存为0。如果您不
ignore_expires=True使用
load()方法,则从文件加载时将丢弃所有此类cookie。
档案
session_cookie.txt:
# Netscape HTTP cookie File.domain.com TRUE / FALSE 0 name value
Python脚本:
import cookielibcj = cookielib.MozillacookieJar('session_cookie.txt')cj.load()print len(cj)
输出:
0
编辑2
虽然我们设法饼干放进瓶子上面,他们随后被丢弃的
cookielib,因为他们仍然有
0在价值
expires属性。为了避免这种情况,我们必须将到期时间设置为将来的某个时间,如下所示:
for cookie in cj: # set cookie expire date to 14 days from now cookie.expires = time.time() + 14 * 24 * 3600
编辑3
我同时检查了wget和curl,并都使用了
0过期时间来表示会话cookie,这意味着这是事实上的标准。但是,Python的实现出于相同目的使用空字符串,因此引发了问题。我认为Python在这方面的行为应与wget和curl的行为保持一致,这就是为什么我在http://bugs.python.org/issue17164引发该错误的原因,
我会注意到
0在第5栏中用空字符串替换s输入文件并传递
ignore_discard=True到
load()是解决问题的另一种方法(在这种情况下,无需更改有效时间)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)