嗨,我正在使用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:文件已加密或不是数据库”时。按照步骤
打开cmd并在提取的目录“ sqlite3 cookies.sqlite”中运行。您将拥有一个sqlite终端。在shell中编写以下命令。
.output cookies.txt#这将把您的以下命令定向到名为cookies.txt的文件
从moz_cookies中选择*;#这将从moz_cookies中选择所有条目。
那里有您的cookies.txt文件。参考链接
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句