在 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/