将多个连续的 SQLite 数据库转储文件合并到 1 个公共数据库中?目的:搜索整个 Chrome 浏览历史记录

将多个连续的 SQLite 数据库转储文件合并到 1 个公共数据库中?目的:搜索整个 Chrome 浏览历史记录

谷歌浏览器的默认网页浏览历史搜索引擎只允许您访问最近 100 天的记录。然而,Chrome 会在您的应用程序数据中保留您的全部的浏览历史记录存储在SQLite数据库文件中,文件命名方案为“历史记录索引YYYY-MM”。

我正在寻找一种方法寻找…

  1. …通过我的整个浏览历史记录
  2. …和复杂的过滤器(将搜索词限制在某些字段,例如 URL、域、标题、正文;通配符或正则表达式词、日期范围)。

… 在 …

  1. …要么一些现成的软件
    • 电子历史接近,因为它可以将术语限制到字段,但它缺少通配符/正则表达式,并且具有与默认搜索相同的有限时间范围。
    • 除此之外,我找不到任何适合的 Chrome 扩展程序或独立(Mac)应用程序。
  2. …或者命令行将多个 SQLite 数据库文件合并为一个数据库,然后我就可以查询该数据库(使用完整的语法功能)。本着以下伪代码的精神:

    • 首选这种方式:sqlite --targetDatabase ChromeHistoryAll --importFiles /path/to/ChromeAppData/History\ Index* --importOnlyYetUnknownFiles

    • 或者,如果我想要的功能 --importOnlyYetUnknownFiles 不可行(该功能也可以称为“通过检查 UID 避免重复导入”),那么通过明确导入我所知道的文件,它们尚未导入到 ChromeHistoryAll 数据库中:cd ChromeAppData; sqlite --databaseTarget ChromeHistoryAll --importFiles YetNotImported1 YetNotImported2 YetNotImported3

    • 然后我将在数据库“ChromeHistoryAll”中执行所有查询



PS:大家感兴趣的附加问题:有没有办法在从多个文件动态创建的临时数据库中执行数据库查询?

喜欢:sqlite --query="SQL query" --targetDatabase DbAll --DBtemporaryInRAM --importFiles db1 db2 db3

这肯定不适用于我的 Chrome 问题,因为这些历史索引文件的总文件大小为 500MB,因此这样的查询性能很差。但它在其他情况下可能会派上用场。

相关内容