firefox logo

Mehr aus der Firefox-Chronik herausholen

Haben Sie sich schon einmal darüber geärgert, dass Firefox in der Chronik nur den letzten Besuch einer Website anzeigt und keine erweiterten Suchoptionen wie AND– oder OR-Abfragen bietet?

Vielleicht wollten Sie schon einmal genau wissen, wann und wie oft Sie eine bestimmte Website besucht haben. Ob zur Dokumentation Ihrer Arbeitszeiten, zur Nachverfolgung einer Recherche oder einfach um Ihre Online-Gewohnheiten besser zu verstehen – es gibt viele Gründe, detailliertere Informationen zu Ihren Webaktivitäten abzufragen und zu filtern.

Glücklicherweise speichert Firefox mehr Informationen, als in der Chronik angezeigt werden – nämlich in einer SQLite-Datenbank-Datei namens places.sqlite.

Mit einem beliebigen Datenbank-Client, welcher Zugriff auf SQLite-Datenbanken unterstützt, lässt sich auf diese Informationen zugreifen. Da ich die Entwicklungsumgebung IntelliJ täglich verwende, nutze ich persönlich den IntelliJ Database Explorer. Hier müssen Sie lediglich eine neue SQLite Data Source hinzufügen und den Pfad zur places.sqlite eingeben. Bei Windows liegt diese unter C:\Users\<Benutzername>\AppData\Roaming\Mozilla\Firefox\Profiles\<Profilordner>\places.sqlite
z.B. C:/Users/mfischer/AppData/Roaming/Mozilla/Firefox/Profiles/8absuz37.default-release/places.sqlite.

Im SQL-Konsolenfenster können Sie nun anhand eines Joins über die Tabellen moz_places und moz_historyvisits beliebige Abfragen ausführen.

Mittels folgendem SQL-Befehl ermitteln Sie zum Beispiel alle Chronik-Einträge des aktuellen Tages:

SELECT  
    datetime(v.visit_date / 1000000, 'unixepoch', 'localtime') AS visit_date,  
    p.title,
    p.url
FROM  
    moz_places p  
    JOIN moz_historyvisits v ON p.id = v.place_id  
WHERE date(datetime(v.visit_date / 1000000, 'unixepoch', 'localtime')) = date('now', 'localtime')
ORDER BY visit_date DESC;  

Beispiel-Ausgabe:

visit_datetitleurl
2024-08-26 15:58:12Was kommt nach Scrum? Ein Ausblick auf die Zukunft agiler Methoden – Business -Software- und IT-Blog – Wir gestalten digitale Wertschöpfunghttps://staging.blog.doubleslash.de/software-technologien/it-projektmanagement/was-kommt-nach-scrum-ein-ausblick-auf-die-zukunft-agiler-methoden
2024-08-26 15:50:50Secure Password Share von doubleSlashhttps://www.secure-password-share.de/
2024-08-26 15:50:43doubleSlash Net-Business GmbHhttps://www.doubleslash.de/
2024-08-26 15:50:38doubleSlash IT Business und Software Bloghttps://staging.blog.doubleslash.de/
2024-08-26 15:50:29Was kommt nach Scrum? Ein Ausblick auf die Zukunft agiler Methoden – Business -Software- und IT-Blog – Wir gestalten digitale Wertschöpfunghttps://staging.blog.doubleslash.de/software-technologien/it-projektmanagement/was-kommt-nach-scrum-ein-ausblick-auf-die-zukunft-agiler-methoden
2024-08-26 15:50:19doubleSlash IT Business und Software Bloghttps://staging.blog.doubleslash.de
2024-08-26 15:50:19http://staging.blog.doubleslash.de/
2024-08-26 15:50:03test – Google Suchehttps://www.google.com/search?client=firefox-b-d&q=test

Falls Sie stattdessen die ganze Historie mittels AND– oder OR-Abfragen über URL und Titel filtern möchten, lässt sich dies zum Beispiel wie folgt bewerkstelligen:

SELECT  
    datetime(v.visit_date / 1000000, 'unixepoch', 'localtime') AS visit_date,  
    p.title,  
    p.url  
FROM  
    moz_places p  
    JOIN moz_historyvisits v ON p.id = v.place_id  
WHERE (  
		  p.url LIKE '%blog%'  
		  AND p.url LIKE '%doubl%'  
		  AND lower(p.title) LIKE '%scrum%'  
	  ) OR (  
	      lower(p.title) LIKE '%agile%'  
	      AND p.url NOT LIKE '%jira%'  
	  )
ORDER BY visit_date DESC;  

Nachtrag

Wenn Sie zusätzlich eine Spalte ergänzen wollen, welche nur die Domain enthält, können Sie die obigen Statements einfach wie folgt anpassen:

SELECT  
    ...
    substr(  
        p.url,  
        instr(p.url, '//') + 2,  
        instr(substr(p.url, instr(p.url, '//') + 2), '/') - 1  
     ) AS domain
FROM  
    ...  

Fazit

Firefox speichert wesentlich mehr Informationen über die eigenen Webaktivitäten, als die Chronik auf den ersten Blick zeigt. Mit einem Datenbank-Client lassen sich diese Daten relative einfach detailliert abfragen.

Titelbild generiert mithilfe von ChatGPT.

Matthias Fischer

Über MICH

Matthias Fischer hat ein Diplom in Allgemeiner Informatik und ist seit 2006 als Software Entwickler bei doubleSlash tätig. Er hat branchenübergreifende Erfahrungen in IT Projekten und arbeitet mit namhaften Kunden wie z.B. Deutsche Post Direkt GmbH, BMW AG, Bundesdruckerei, ZF AG und Zeppelin Systems zusammen. Matthias hat umfangreiches Knowhow in Spring Boot, Java EE und Angular. Sein Einsatzschwerpunkt liegt vorwiegend in der Backend-Entwicklung, seit einiger Zeit gehört jedoch auch die Frontend-Entwicklung mit Angular zu seinen Tätigkeiten. Matthias begeistert sich außerdem für Softwarequalität, automatisierte Test und die agile Entwicklung.

Alle Beiträge von Matthias Fischer

Mehr erfahren

Weitere Infos auf unserer Website und in unserem Newsletter

Pfeil hoch