Программно доступ к истории Google Chrome - PullRequest
5 голосов
/ 22 декабря 2011

Я хочу проиндексировать все действия пользователя и веб-сайты в Google Chrome. Я понимаю, что Google Chrome индексировать все данные в базе данных sqlLite. как я могу программно получить доступ к истории веб-страниц Chrome в моем собственном приложении

Ответы [ 3 ]

10 голосов
/ 22 декабря 2011

Необходимо загрузить соответствующую сборку со страницы SqLite для загрузки

После добавления ссылки на сборку SQLite она очень похожа на стандартную ADO.net

Вся история пользователя хранится в базе данных истории, расположенной по пути в строке подключения ниже

SQLiteConnection conn = new SQLiteConnection
    (@"Data Source=C:\Users\YourUserName\AppData\Local\Google\Chrome\User Data\Default\History");
conn.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = conn;
//  cmd.CommandText = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;";
//  Use the above query to get all the table names
cmd.CommandText = "Select * From urls";
SQLiteDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr[1].ToString());
}
1 голос
/ 14 апреля 2016

В приложении Windows с инструментом Datagridview - событие нажатия кнопки

private void button1_Click(object sender, EventArgs e)
    {
        string google = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\History";
        string fileName = DateTime.Now.Ticks.ToString();
        File.Copy(google, Application.StartupPath + "\\" + fileName);
        using (SQLiteConnection con = new SQLiteConnection("DataSource = " + Application.StartupPath + "\\" + fileName + ";Versio=3;New=False;Compress=True;"))
        {
            con.Open();
            //SQLiteDataAdapter da = new SQLiteDataAdapter("select url,title,visit_count,last_visit_time from urls order by last_visit_time desc", con);
            SQLiteDataAdapter da = new SQLiteDataAdapter("select * from urls order by last_visit_time desc", con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            con.Close();
        }
        try // File already open error is skipped
        {
          if (File.Exists(Application.StartupPath + "\\" + fileName))
             File.Delete(Application.StartupPath + "\\" + fileName);
        }
        catch (Exception)
        {
        }
    }

Ссылка источник

Здесь я скопировал файл истории в путь запуска приложения в порядкечтобы избежать ошибки SQLite «база данных заблокирована».

0 голосов
/ 10 ноября 2015

Используемый ниже код получает «Windows / x86_64» в результате

   try 
   {
        Class.forName ("org.sqlite.JDBC");
        connection = DriverManager.getConnection ("jdbc:sqlite:/C:/Users/tarun.kakkar/AppData/Local/Google/Chrome/User Data/Default/History");

        statement = connection.createStatement ();
        resultSet = statement.executeQuery ("SELECT * FROM urls");

        while (resultSet.next ()) 
        {
            System.out.println ("URL [" + resultSet.getString ("url") + "]" + ", visit count [" + resultSet.getString ("visit_count") + "]");
        }
    } 

    catch (Exception e) 
    {
        e.printStackTrace ();
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...