我正在开发一个Rails3项目,它主要依靠屏幕抓取来收集数据
Nokogiri
. 我把基本上所有相同的数据聚合在一起,但我从许多不同的数据源中获取数据,随着时间的推移,我将添加越来越多的数据。然而,我敏锐地意识到屏幕抓取是出了名的不可靠。
因此,我对其他人如何处理验证数据的问题很感兴趣,如果数据失败,也会收到通知。
我目前的计划如下。
-
我将对大多数字段的模型进行验证。如果他们失败了,我就不会把坏数据输入我的系统。尽管以有意义的方式记录此故障仍然是一个问题。
-
我在想一种计数器,在某个特定来源的如此多失败之后,我不知怎么地关掉了它。不知道如何跟踪。我想唯一的方法是在我的源模型上有一个字段对其进行计数并可以重置。
-
伐木是800磅重的大猩猩,我不知道该怎么处理。我可以只写标准的日志,但如果有什么失败,我想存储整个HTML,以便我能找到它。另外,我需要以某种方式通知自己,这样我才能解决问题。我想也许只是为所有这些创建一个模型并将其存储在数据库中。如果我这样做,我可能需要将HTML存储在S3或其他东西上。我在Heroku上运行这个程序,以影响我的工作。
-
开始设置并在每个场地周围救援。我试着用一种更好的Ruby方式编写代码,这样我就没有它们的页面了,但是尽管我确实有一些字段是直接向上的doc.css_a t(“whatever”),但是有相当多的数字需要不同的格式或计算,所以我认为尝试挽救它是有意义的,这样我就可以记录出错的内容。另一种选择是让异常冒泡起来,并在我尝试创建模型时捕获它。
不管怎么说,我肯定我什么都没想,但这就是为什么我想知道其他人是如何处理这个问题的。