python - 在 MVC 模式框架中,屏幕抓取模块位于何处?

标签 python ruby-on-rails model-view-controller

在 MVC 模式框架中,屏幕抓取模块最符合逻辑的位置在哪里?在模型中还是在 Controller 中?或者它完全超出了这个模式?

最佳答案

如果您将其设计得像一个模型,那么您可以将其称为模型。然后就可以在 Controller 中轻松使用它:

def update
  @company = Company.find(params[:id])

  @scraper = Scraper.find(:page => some_url, :method => :rip)

  @scraper.product_details.each do |params|
    @company.products.create(params)
  end
end

当您设计抓取器的输出格式以与某些其他对象(例如持久存储的列映射)兼容时,这总是很方便的。

拥有“类似模型”的对象通常很方便。在这种情况下,您可以将抓取工具视为另一个网站的接口(interface)而不是数据库,在这方面它与 ActiveResource 没有什么不同。没有规定模型必须基于 ActiveRecord 构建。

关于python - 在 MVC 模式框架中,屏幕抓取模块位于何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342033/

相关文章:

python - Python 中对象的相等性

Python urllib2.urlopen 返回 HTTP 错误 503

python - 导入错误 : No module named isodate

ruby-on-rails - 如何跟踪已被杀死的 sidekiq 作业?

html - 尝试列出数据库查询时 StaticPages#home 中出现 NoMethodError

javascript - ObjectListItem "press"事件未触发

python - 在 Python 中使用 Selenium、Beautiful Soup 抓取灯箱覆盖

javascript - 在 Javascript 中输入发送键只能运行一次

javascript - 设计 AJAX 应用程序的推荐方法

java - ListSelectionListener 调用 setSelected 方法时不会触发事件