【问题标题】:How do I read the cache of Chrome and Firefox programmatically on the Mac?如何在 Mac 上以编程方式读取 Chrome 和 Firefox 的缓存?
【发布时间】:2010-02-22 11:21:57
【问题描述】:

背景

我想在我的 Cocoa 应用程序中访问 Chrome 和 Firefox 的缓存。我需要获取最近访问的页面的 HTML。 Safari 是小菜一碟 - 所有这些信息都可以在 SQLite 数据存储中获得,但在 Chrome 和 Firefox 中却不是。

问题

对于 Firefox,缓存位于 /Library/Caches/Firefox/Profiles/xxx.default/Cache 中,文件名为 _CACHE_001_ _CACHE_002_ _CACHE_003_ 和 _CACHE_MAP_

对于 Chrome,缓存位于 /Library/Caches/Google/Chrome/Default/Cache 中,文件名为 data_0 data_1 data_2 和 data_3

我的尝试

我能找到的唯一一篇文章阐明了is here 中这些缓存的格式。它推荐了一个缓存查看器工具,但没有解释如何以编程方式执行此操作。

问题

  1. 有什么方法可以重构 使用命令行工具获取此数据 还是 Cocoa 框架?或者是 水平太低了?

  2. 还有其他方法可以解决 我最近的网页的 HTML 不知道?

【问题讨论】:

  • 这可能不是很有帮助,但由于 Firefox 和 Chromium 都是开源的,因此绝对可以解码它们使用的格式。
  • 天啊。我不敢相信我没想到!这会很麻烦,但这是一个可行的最坏情况。感谢您指出我应该清楚的事情! :)
  • 请记住,尽管 Safari 的缓存目前很容易读取,但您无法保证它在将来会保持相同的位置和格式。
  • 是的,说得好,迈克。我现在要发布一个单独的 Stack Overflow 问题。

标签: cocoa macos firefox caching google-chrome


【解决方案1】:

我能看到的唯一解决方案是上面 Ole 建议的,即查看 Chrome 和 Firefox 中的代码并找出它们如何对缓存进行编码。

我已经意识到这是一个充满困难的巨大编码挑战。我正在放弃这个功能并尝试一种更简单的方法。

【讨论】:

  • 您能否编写 Firefox / Chrome 脚本并使用它向您的应用程序公开其内部 API?也许安装一个 Firefox 插件来读取缓存并写入您的应用可以理解的元数据?
  • 这是个好主意。这看起来确实很耗时,但如果我想这样做,肯定是要走的路。
  • Firefox 扩展实际上很容易编写。 Beagle 项目曾经做过我想您可能正在尝试的事情:通知外部进程您正在访问哪些 URL。也许你可以从这里挖掘一些来源:beagle-project.org/Browser_Extension
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
相关资源
最近更新 更多