Acceder programáticamente al historial del navegador
Pregunta
¿Cómo puedo crear una aplicación para leer todo el historial de mi navegador (firefox)?Me di cuenta de que tengo en
C:\Users\user.name\AppData\Local\Mozilla\Firefox\Profiles\646vwtnu.default
lo que parece una base de datos sqlite (urlclassifier3.sqlite) pero no sé si realmente es lo que se usa para almacenar la información histórica.Busqué ejemplos sobre cómo hacer esto pero no encontré nada.
PD:aunque el título es similar, creo que esta pregunta no es la misma que "¿Cómo se accede al historial del navegador?"
Solución
Yo creo places.sqlite
es el que deberías buscar en el historial (Firefox 3).A continuación se muestran un par de entradas wiki de Mozilla que tienen información sobre el tema.
- Mozilla 2:Almacenamiento unificado
- Historial del navegador (consulte especialmente la sección "Diseño de bases de datos" aquí)
En versiones anteriores de Firefox almacenaban el historial en un archivo llamado history.dat
, que estaba codificado en un formato llamado "Mork". Este script en Perl de Jamie Zawinski se puede utilizar para analizar archivos Mork.
Otros consejos
También me parecieron interesantes los siguientes enlaces:
- Literalmente haz historia con Firefox 3
- SQLite en .NET: comience a funcionar en 3 minutos.
- Complemento SQLite Manager para Firefox
Después de agregar una referencia a System.Data.Sqlite en mi proyecto .Net, todo lo que tuve que hacer para crear una conexión fue:
cnn = New SQLiteConnection("data source=c:\Users\user.name\AppData\Roaming\Mozilla\Firefox\Profiles\646vwtnu.default\places.sqlite")
cnn.Open()
Tuve un problema menor: el proveedor .net sqlite no admite sqlite3_enable_shared_cache, lo que creo que me impide abrir la base de datos de lugares.sqlite mientras tengo Firefox ejecutándose (consulte Soporte para sqlite3_enable_shared_cache)
El Complemento del administrador SQLite de Firefox es una gran herramienta.Si desea obtener más información sobre el diseño de Firefox Places y el esquema de base de datos, visite Lugares Mozilla.