我想索引谷歌瀏覽器中的所有用戶操作和網站。我明白google chrome索引sqlLite數據庫中的所有數據。我如何通過編程訪問Chrome網上應用歷史在我自己的應用程序以編程方式訪問谷歌瀏覽器歷史記錄
回答
下載相應的組件一旦你添加一個參考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());
}
數據庫被鎖定異常被拋出 – 2017-03-26 18:13:12
同一個「數據庫被鎖定」 –
也許數據庫被鎖定,因爲Chrome的活動實例正在使用它,嘗試將該文件複製到另一個位置,然後閱讀它。 – dlopezgonzalez
歷史數據庫中使用下面的代碼獲得的「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();
}
與DataGridView的工具Windows窗體應用程序 - 按鈕單擊事件
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)
{
}
}
參考source
在這裏,我已經複製歷史文件應用程序啓動路徑,以避免SQLite的錯誤「數據庫被鎖住了」。
- 1. 以編程方式訪問瀏覽器歷史記錄
- 2. 以編程方式清除Chrome瀏覽器歷史記錄
- 3. 以編程方式查找Chrome瀏覽器歷史記錄
- 4. 如何通過編程訪問iphone瀏覽器歷史記錄
- 5. 谷歌瀏覽器在重定向上創建歷史記錄?
- 6. 以編程方式訪問TFS歷史
- 7. 如何在本地機器上以編程方式訪問Google Chrome瀏覽器歷史記錄
- 8. 在Silverlight中訪問瀏覽器歷史記錄
- 9. 如何以編程方式檢索Safari的完整瀏覽歷史記錄?
- 10. 的Android編程方式操作瀏覽器歷史記錄的單元測試
- 11. 瀏覽器歷史記錄或CSS
- 12. Phonegap Cordova瀏覽器歷史記錄
- 13. 瀏覽器歷史記錄管理
- 14. 讀取瀏覽器歷史記錄
- 15. 刪除瀏覽器歷史記錄
- 16. smartgwt瀏覽器歷史記錄
- 17. Ajax +瀏覽器歷史記錄
- 18. javascript中的瀏覽器歷史記錄
- 19. pushState加擾瀏覽器歷史記錄
- 20. JQuery simplePagination.js瀏覽器歷史記錄
- 21. 清除瀏覽器歷史記錄
- 22. Android瀏覽器歷史記錄URI?
- 23. Grails的瀏覽器歷史記錄?
- 24. 清除Android瀏覽器歷史記錄
- 25. 清除CefGlue瀏覽器歷史記錄
- 26. ExtJS MVC的瀏覽器歷史記錄
- 27. Angular2瀏覽器歷史記錄導航
- 28. 鉻訪問瀏覽器歷史
- 29. 是否有可能以編程方式訪問Apple Maps導航歷史記錄?
- 30. 谷歌地圖api保存訪問歷史記錄
重複的http://stackoverflow.com/questions/2562092/how-to-access-google-chrome-browser-history-programmatically-on-local-machine。 – ziesemer
當你說VS 2008時,我假設你的意思是.net 3.5。VS是一個IDE,而不是一個框架。 – CodesInChaos
可能會問爲什麼?數據庫被鎖定 – mesutpiskin