尝试使用python访问firefox cookie时出错

帕拉韦

嗨,我正在使用python中的firefox cookie。我提到了这个我收到“ DatabaseError:文件已加密或不是数据库”错误。我也经历了其他答案,它们似乎暗示了兼容性问题,但是它们都没有详细说明如何解决该问题。

操作系统:Windows 7,Firefox版本:38,Python:2.7.9。

请帮助我解决此问题。下面是代码。顺便说一句,我在工作目录中有'cookies.sqlite'的副本,因此请不要回答我的路径不正确。

谢谢。

import urllib2
import cookielib
from sqlite3 import dbapi2

host = 'www.reddit.com'
ff_cookie_file= 'cookies.sqlite'

file = open("cookie.txt", "w")
file.write("#LWP-Cookies-2.0\n")
match = '%%%s%%' % host
con = dbapi2.connect(ff_cookie_file)
cur = con.cursor()
cur.execute("select name, value, path, host from moz_cookies where host like ?", [match])
for item in cur.fetchall():
    cookie = "Set-Cookie3: %s=\"%s\"; path=\"%s\";  \
    domain=\"%s\"; expires=\"2038-01-01 00:00:00Z\"; version=0\n" % (item[0], item[1], item[2], item[3])
file.write(cookie)
file.close()

cj = cookielib.LWPCookieJar()
cj.load("cookie.txt")

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

编辑:运行命令“ sqlite3 cookies.sqlite”会给出以下输出:

python: can't open file 'sqlite3': [Errno 2] No such file or directory

我猜这是因为我的系统没有“ sqlite3.exe”文件。

为了进一步确认sqlite3是否正常工作,我创建了数据库,插入了几个值并进行查询。它像魅力一样运作。这是链接所以我想“ cookies.sqlite”文件有问题。使它正常工作的任何其他方法。伙计们,我真的需要解决这个问题。

帕拉韦

因此,最终我找到了创建“ cookies.txt”问题的解决方案。

注意:我没有损坏“ cookies.sqlite”,我的sqlite3也没有任何问题。我通过导入python的解释器确认了这一点。

因此,我已经运行了“ cookies.sqlite”并运行了“ sqlite3”,但是当组合产生“ DatabaseError:文件已加密或不是数据库”时。按照步骤

  • 此处下载Windows sqlite3二进制文件并解压缩二进制文件。
  • 打开cmd并在提取的目录“ sqlite3 cookies.sqlite”中运行。您将拥有一个sqlite终端。在shell中编写以下命令。

    .output cookies.txt#这将把您的以下命令定向到名为cookies.txt的文件

    从moz_cookies中选择*;#这将从moz_cookies中选择所有条目。

那里有您的cookies.txt文件。参考链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章