您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python请求中使用cookies.txt文件

在Python请求中使用cookies.txt文件

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 Cookie File字符串。您使用的插件生成文件不包含这样的字符串,因此您必须自己插入它。我在http://code.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 cookielib

cj = cookielib.MozillaCookieJar('session_cookie.txt')
cj.load()
print len(cj)

输出0

虽然我们设法饼干放进瓶子上面,他们随后被丢弃cookielib,因为他们仍然有0在价值expires属性。为了避免这种情况,我们必须将到期时间设置为将来的某个时间,如下所示:

for cookie in cj:
    # set cookie expire date to 14 days from Now
    cookie.expires = time.time() + 14 * 24 * 3600

我同时检查了wget和curl,并都使用了0过期时间来表示会话cookie,这意味着这是事实上的标准。但是,Python的实现出于相同目的使用空字符串,因此引发了问题。我认为Python在这方面的行为应与wget和curl的行为保持一致,这就是为什么我在http://bugs.python.org/issue17164引发该错误的原因, 我会注意到0在第5栏中用空字符串替换s输入文件并传递ignore_discard=Trueload()解决问题的另一种方法在这种情况下,无需更改有效时间)。

python 2022/1/1 18:37:48 有247人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶