ruby-on-rails - 在 Rails 应用程序中重现 Evernote web clipper

标签 ruby-on-rails ruby evernote

我想编写一个 Rails 应用程序,它能够像 Evernote clipper 那样捕获网页。如果您不熟悉,在您的浏览器中,您可以单击工具栏上的一个按钮,它会捕获一个相当准确的网页布局副本。例如,转到 http://www.evernote.com/pub/jssmith072/shared然后单击该页面上的单个注释,您将能够看到我捕获的网页。有几个原因我不知道从哪里开始:

  • 如何在 Rails 应用程序中以编程方式获取呈现的网页?我可以/应该使用 WebKit 吗?
  • 如何将此网页存储在我的数据库中?
  • 如何在浏览器中一致地显示此网页存档?

最佳答案

就个人而言,我倾向于根本不将其存储在数据库中,而是生成一个后台作业来下拉站点、解析它并使用您的可读性端口对其进行过滤,然后将其保存到某个文件系统中(公共(public)或非公共(public),取决于您的需要,您可以使用唯一标识它的目录方案轻松编写 Assets 服务 Controller 以公开非公共(public)静态内容)。

这样你就不需要做任何可怕的、复杂的事情,可以让服务器做他们擅长的事情,而不是每次都必须编写一些自定义的东西来从数据库中提取潜在的大量数据页面被浏览。

对于类似的事情,您所需要的只是一个简单的数据库条目,其中包含一个 ID、一个 URL、某种标志以指示它已成功下载(或上次失败的时间以便稍后重试)、路径在文件系统上,它应该/将存储在一个文本列中,其中包含用于搜索目的的页面文本转储。

关于ruby-on-rails - 在 Rails 应用程序中重现 Evernote web clipper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3217282/

相关文章:

ruby-on-rails - Rails 视频上传

ruby-on-rails - attr_accessor 和 attr_reader 在 Rails 4 中不起作用

ruby-on-rails - 如何使用restforce gem 在Rails 中设置Salesforce 凭据?

ios - 有没有办法让自定义表格 View 单元格看起来像 Xcode 6+ 中的按钮?

ruby-on-rails - 如何在 has_many :through 中找到不同的值

javascript - Angular js - 指定 Rails api 的主机名

ruby-on-rails - 按 parent 和 child 的 created_at 排序的最佳方式是什么?

ruby - Capistrano 3 在任务中更改 ssh_options

ruby - 通过 Ruby 访问 Evernote API

evernote - API 是否允许访问 Evernote 上的文档元数据?