代码之家  ›  专栏  ›  技术社区  ›  John Gallagher

如何通过活动记录读取safari的cache.db?

  •  0
  • John Gallagher  · 技术社区  · 16 年前

    我想要什么

    我想通过活动记录读取Safari的缓存。基本上,我想 peek inside the cache like this 除了在Rails应用程序中。

    我试过什么

    我复制了cache.db文件 我在一个新的Rails应用程序中设置了environment.rb文件,其路径是safari cache.db sqlite数据库的副本。 RANDB:迁移

    这似乎生成了一个模式,但我不确定现在如何读取这些数据。架构也有一个错误:

    # Could not dump table "cfurl_cache_response" because of following StandardError
    #   Unknown type '' for column 'time_stamp'
    

    我想我走错了路。

    要求

    • 我不想写任何数据,只是读一下。
    • 我想读取缓存中存储的页面的URL和HTML。
    • 非常简单的事情-我是一个铁路新手。
    • 快速实施-这是一个快速和肮脏的原型。

    最好的方法是什么?

    我是否应该通过第二个sqlite数据库连接到safari缓存,在该数据库中我可以构造数据的只读查询?然后通过我的Rails应用程序依次阅读这个?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Andrew Nesbitt    16 年前

    如果您只想从中读取,那么您也可以使用sqlite3 gem http://sqlite-ruby.rubyforge.org/ 以下内容:

    gem install sqlite3-ruby
    

    然后在红宝石中:

    require 'rubygems'
    require 'sqlite3'
    
    db = SQLite3::Database.new('/Users/Andrew/Library/Caches/com.apple.Safari')
    

    然后您可以使用普通的SQL来读取它:

    db.execute 'SELECT * FROM cfurl_cache_response'