google-chrome - privacidad - descargar google chrome
Cómo acceder al historial del navegador Google Chrome mediante programación en una máquina local (6)
Aquí hay una clase que creé para leer los datos de navegación de Google Chrome. La mayoría del código que recibí de here pero lo ajusté un poco para agregar soporte para Google Chrome. Probablemente también desee descargar SQLite para .Net desde here y agregar las referencias a System.Data.Sqlite.
class GoogleChrome
{
public List<URL> URLs = new List<URL>();
public IEnumerable<URL> GetHistory()
{
// Get Current Users App Data
string documentsFolder = Environment.GetFolderPath
(Environment.SpecialFolder.ApplicationData);
string[] tempstr = documentsFolder.Split(''//');
string tempstr1 = "";
documentsFolder += "//Google//Chrome//User Data//Default";
if (tempstr[tempstr.Length - 1] != "Local")
{
for (int i = 0; i < tempstr.Length - 1; i++)
{
tempstr1 += tempstr[i] + "//";
}
documentsFolder = tempstr1 + "Local//Google//Chrome//User Data//Default";
}
// Check if directory exists
if (Directory.Exists(documentsFolder))
{
return ExtractUserHistory(documentsFolder);
}
return null;
}
IEnumerable<URL> ExtractUserHistory(string folder)
{
// Get User history info
DataTable historyDT = ExtractFromTable("urls", folder);
// Get visit Time/Data info
DataTable visitsDT = ExtractFromTable("visits",
folder);
// Loop each history entry
foreach (DataRow row in historyDT.Rows)
{
// Obtain URL and Title strings
string url = row["url"].ToString();
string title = row["title"].ToString();
// Create new Entry
URL u = new URL(url.Replace(''/''', '' ''),
title.Replace(''/''', '' ''),
"Google Chrome");
// Add entry to list
URLs.Add(u);
}
// Clear URL History
DeleteFromTable("urls", folder);
DeleteFromTable("visits", folder);
return URLs;
}
void DeleteFromTable(string table, string folder)
{
SQLiteConnection sql_con;
SQLiteCommand sql_cmd;
// FireFox database file
string dbPath = folder + "//History";
// If file exists
if (File.Exists(dbPath))
{
// Data connection
sql_con = new SQLiteConnection("Data Source=" + dbPath +
";Version=3;New=False;Compress=True;");
// Open the Conn
sql_con.Open();
// Delete Query
string CommandText = "delete from " + table;
// Create command
sql_cmd = new SQLiteCommand(CommandText, sql_con);
sql_cmd.ExecuteNonQuery();
// Clean up
sql_con.Close();
}
}
DataTable ExtractFromTable(string table, string folder)
{
SQLiteConnection sql_con;
SQLiteCommand sql_cmd;
SQLiteDataAdapter DB;
DataTable DT = new DataTable();
// FireFox database file
string dbPath = folder + "//History";
// If file exists
if (File.Exists(dbPath))
{
// Data connection
sql_con = new SQLiteConnection("Data Source=" + dbPath +
";Version=3;New=False;Compress=True;");
// Open the Connection
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
// Select Query
string CommandText = "select * from " + table;
// Populate Data Table
DB = new SQLiteDataAdapter(CommandText, sql_con);
DB.Fill(DT);
// Clean up
sql_con.Close();
}
return DT;
}
}
La clase para la URL:
class URL
{
string url;
string title;
string browser;
public URL(string url, string title, string browser)
{
this.url = url;
this.title = title;
this.browser = browser;
}
public string getData()
{
return browser + " - " + title + " - " + url;
}
}
Funcionó como un encanto para mí. Espero eso ayude
Quiero escribir un programa simple que muestre mi actividad en Internet durante un período de tiempo (qué sitio visité, cuántas veces, etc.). Principalmente utilizo el navegador Google Chrome. Descubrí que Chrome almacena el historial del navegador en esta ubicación: C: / Documents and Settings // Configuración local / Datos de aplicación / Google / Chrome / Datos de usuario / Predeterminado (corríjame si me equivoco). ¿Cómo puedo abrir los archivos de historial? No tienen ninguna extensión de archivo. No pude abrir usando el bloc de notas, el navegador SQLite. ¿Cómo accedo a estos datos programáticamente? Quiero saber qué formato de archivo es y cómo leerlo utilizando un lenguaje de programación como C #.
Como el cartel original solicitó un programa simple, aquí está. El programa se adaptó del sitio web de java workspace (como se acredita en el código). Deberá cambiar el argumento de getConnection ()
para indicar dónde residen los archivos de historial en su máquina. El programa compila y ejecuta en mi entorno Linux 2.6.39:
/**
Adapted from http://www.javaworkspace.com/connectdatabase/connectSQLite.do
Date: 09/25/2012
Download sqlite-jdbc-<>.jar from http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC, and
compile: javac GetChromiumHistory.java
run: java -classpath ".:sqlite-jdbc-3.7.2.jar" GetChromiumHistory
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* @author www.javaworkspace.com
*
*/
public class GetChromiumHistory
{
public static void main (String[] args)
{
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try
{
Class.forName ("org.sqlite.JDBC");
connection = DriverManager
.getConnection ("jdbc:sqlite:/home/username/.config/chromium/Default/History");
statement = connection.createStatement ();
resultSet = statement
.executeQuery ("SELECT * FROM urls where visit_count > 100");
while (resultSet.next ())
{
System.out.println ("URL [" + resultSet.getString ("url") + "]" +
", visit count [" + resultSet.getString ("visit_count") + "]");
}
}
catch (Exception e)
{
e.printStackTrace ();
}
finally
{
try
{
resultSet.close ();
statement.close ();
connection.close ();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}
}
Es solo una base de datos de SQlite 3, pude abrirla correctamente (aunque, por supuesto, no puede abrir una base de datos bloqueada de un navegador en ejecución).
Existe un programa de código abierto llamado Hindsight ( https://github.com/obsidianforensics/hindsight ) que analiza el historial de navegación en Chrome. Si bien el programa es bastante grande y complicado, accede a los diversos archivos de Chrome SQLite mediante consultas SQL, que se pueden extraer y utilizar de forma independiente, ya sea en un navegador SQLite o en un programa diferente.
Un ejemplo de uno para la base de datos de Chrome v30 + History es:
SELECT urls.id, urls.url, urls.title, urls.visit_count, urls.typed_count, urls.last_visit_time, urls.hidden, urls.favicon_id, visits.visit_time, visits.from_visit, visits.visit_duration, visits.transition, visit_source.source
FROM urls JOIN visits ON urls.id = visits.url
LEFT JOIN visit_source ON visits.id = visit_source.id
Hay muchas más consultas SQL para diferentes bases de datos de Chrome, así como diferentes versiones de Chrome.
Para ver las bases de datos sqlite (que es el índice de historial de Chromium), he preferido sqlitebrowser . Es gratis y funciona en Windows, Mac y Linux. Un favorito de todos los tiempos para mí.
Sé que Safari usa listas binarias para su historial (y SQLite para su caché). ¿Es posible que Chrome esté haciendo lo mismo?