【问题标题】:How do I read Safari's cache.db through Active Record?如何通过 Active Record 读取 Safari 的 cache.db?
【发布时间】:2011-01-13 19:52:11
【问题描述】:

我想要什么

我想通过 Active Record 读取 Safari 的缓存。本质上,我想 peek inside the cache like this 除了在 Rails 应用程序中。

我的尝试

我复制了 Cache.db 文件 我在一个新的 Rails 应用程序中使用 Safari Cache.db SQLite 数据库的副本路径设置了 environment.rb 文件。 跑分贝:迁移

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

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

我想我在这里走错路了。

要求

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

最好的方法是什么?

我是否应该通过第二个 SQLite 数据库连接到 Safari 缓存,我可以在其中构造数据的只读查询?然后以某种方式通过我的 Rails 应用程序依次阅读此内容?

【问题讨论】:

    标签: ruby-on-rails macos sqlite caching safari


    【解决方案1】:

    如果你只想从中读取,不妨使用 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'
    

    【讨论】:

    • 谈谈最简单可行的方法。这是完美的——正是我所追求的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    相关资源
    最近更新 更多