以编程方式访问浏览器历史记录

时间:2020-03-05 18:50:43  来源:igfitidea点击:

我如何创建一个应用程序以读取我所有的浏览器(firefox)历史记录?
我注意到我有

C:\ Users \ user.name \ AppData \ Local \ Mozilla \ Firefox \ Profiles \ 646vwtnu.default

什么看起来像一个sqlite数据库(urlclassifier3.sqlite),但我不知道它是否真的用来存储历史信息。
我搜索了有关如何执行此操作的示例,但未找到任何内容。

ps:尽管标题相似,但我认为这个问题与"如何访问浏览器历史记录"不同。

解决方案

回答

我相信places.sqlite是我们应该寻找的历史记录(Firefox 3)。以下是几个Mozilla Wiki条目,其中包含有关该主题的一些信息。

  • Mozilla 2:统一存储
  • 浏览器历史记录(请参见此处的"数据库设计"部分)

在早期版本的Firefox中,他们将历史记录存储在名为" history.dat"的文件中,该文件以" Mork"格式编码。 Jamie Zawinski的这个perl脚本可用于解析Mork文件。

回答

我还发现以下链接很有趣:

  • 从字面上看用Firefox 3创造历史
  • .NET上的SQLite-3分钟即可启动并运行。
  • SQLite Manager Firefox插件

在我的.Net项目中添加对System.Data.Sqlite的引用之后,创建连接所需要做的就是:

cnn = New SQLiteConnection("data source=c:\Users\user.name\AppData\Roaming\Mozilla\Firefox\Profiles6vwtnu.default\places.sqlite")
cnn.Open()

我有一个小故障,.net sqlite提供程序不支持sqlite3_enable_shared_cache,我认为这阻止了我在运行Firefox时打开places.sqlite数据库(请参阅对sqlite3_enable_shared_cache的支持)

回答

Firefox SQLite Manager插件是一个很棒的工具。如果我们想了解Firefox Places设计和数据库架构,请访问Mozilla Places。