Robin Koch
2014-06-23 23:07:18 UTC
Hallo,
ich bin neu in der Gruppe und habe keine FAQ zu ihr gefunden, daher
hoffe ich gegen keine lokalen Gepflogenheiten zu verstoßen. :-)
Mein Problem:
Ich möchte mit Python 2.7.6 den Wert eines bestimmten Cookies aus
Firefox (v30.0) auslesen.
Firefox speichert seine Cookies in der SQLite-Datei 'cookies.sqlite'.
Mein erster Ansatz war natürlich(?) Pythons sqlite3-Module zu benutzen:
---
import sqlite3
dblocation = r'd:\temp\sqlite\cookies.sqlite'
query = r"""SELECT value FROM moz_cookies
WHERE baseDomain LIKE 'website.com' AND name = 'userid'"""
db = sqlite3.connect(dblocation)
cur = db.cursor()
cur.execute(query)
---
Der execute-Aufruf führt leider zu folgendem Fehler:
---
DatabaseError: file is encrypted or is not a database
---
Internetrecherche auf zu diesem Problem hat mich nicht viel
weitergeführt. Entweder hieß es die Datei wäre durch Firefox gegen
Zugriff gesperrt oder die SQLite-Version wäre veraltet.
Nun, die Datei ist in Ordnung, es wird nicht darauf zugegriffen und mit
dem SQLite Manager aus Firefox sowie direkt mit dem
sqlite3-Kommandozeilentool kann ich problemlos darauf zugreifen.[1]
Die SQLite-Versionsnummer lauten:
sqlite.version_info = 2.6.0
sqlite3.sqlite_version_info = 3.6.21
Wie ich das genau updaten soll ohne irgendwas neu zu compilieren weiß
ich nicht. Allerdings scheint mir die Datenbank nicht besonders
ausgefallen. Ich weiß nicht, ob das wirklich schon ein Versionskonflikt
sein kann.
Zum Vergleich dennoch die Versionsnummern der anderen Tools:
sqlite3.exe: 3.8.5
SQLite Manager: SQLite 3.8.3.1
Sollten da wirklich solch dramatische Änderungen passiert sein, dass die
Abwärtskompatibilität leidet..?
[1] In der Tat löse ich das Problem im Moment durch
subprocess.check_output(["sqlite3.exe", dblocation, query])
Aber so richtig gut finde ich das nicht. %-)
Any thoughts?
ich bin neu in der Gruppe und habe keine FAQ zu ihr gefunden, daher
hoffe ich gegen keine lokalen Gepflogenheiten zu verstoßen. :-)
Mein Problem:
Ich möchte mit Python 2.7.6 den Wert eines bestimmten Cookies aus
Firefox (v30.0) auslesen.
Firefox speichert seine Cookies in der SQLite-Datei 'cookies.sqlite'.
Mein erster Ansatz war natürlich(?) Pythons sqlite3-Module zu benutzen:
---
import sqlite3
dblocation = r'd:\temp\sqlite\cookies.sqlite'
query = r"""SELECT value FROM moz_cookies
WHERE baseDomain LIKE 'website.com' AND name = 'userid'"""
db = sqlite3.connect(dblocation)
cur = db.cursor()
cur.execute(query)
---
Der execute-Aufruf führt leider zu folgendem Fehler:
---
DatabaseError: file is encrypted or is not a database
---
Internetrecherche auf zu diesem Problem hat mich nicht viel
weitergeführt. Entweder hieß es die Datei wäre durch Firefox gegen
Zugriff gesperrt oder die SQLite-Version wäre veraltet.
Nun, die Datei ist in Ordnung, es wird nicht darauf zugegriffen und mit
dem SQLite Manager aus Firefox sowie direkt mit dem
sqlite3-Kommandozeilentool kann ich problemlos darauf zugreifen.[1]
Die SQLite-Versionsnummer lauten:
sqlite.version_info = 2.6.0
sqlite3.sqlite_version_info = 3.6.21
Wie ich das genau updaten soll ohne irgendwas neu zu compilieren weiß
ich nicht. Allerdings scheint mir die Datenbank nicht besonders
ausgefallen. Ich weiß nicht, ob das wirklich schon ein Versionskonflikt
sein kann.
Zum Vergleich dennoch die Versionsnummern der anderen Tools:
sqlite3.exe: 3.8.5
SQLite Manager: SQLite 3.8.3.1
Sollten da wirklich solch dramatische Änderungen passiert sein, dass die
Abwärtskompatibilität leidet..?
[1] In der Tat löse ich das Problem im Moment durch
subprocess.check_output(["sqlite3.exe", dblocation, query])
Aber so richtig gut finde ich das nicht. %-)
Any thoughts?
--
Robin Koch
Robin Koch