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

在Python请求中使用cookies.txt文件,第1张

在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 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()
是解决问题的另一种方法(在这种情况下,无需更改有效时间)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5644422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存