使用Nokogiri刮取多个网站的最佳方法是什么?

时间:2013-09-07 08:45:36

标签: ruby-on-rails ruby screen-scraping

使用Nokogiri,需要指定CSS类来获取使用at_css包含的数据。但是,当要求刮掉多个网站时,我们如何处理同样的问题呢?设计和使用的CSS类会有所不同?

2 个答案:

答案 0 :(得分:1)

没有神奇的解决方案。您必须调查每个页面的结构并实施抓取解决方案。

您还应遵守网站的版权政策。

"The act of screen scraping also presents other legal risks, such as 
infringement of copyright, trade marks, database rights and a breach 
of website terms and conditions"

答案 1 :(得分:1)

如果您的网站和抓取目标足够相似,可以通过维护每个目标网站的一些数据(包括代码或数据库)来完成,包括相关数据的路径。

如果页面完全不同,那么您通常别无选择,只能为每个页面编写定制代码。

您可以组合这些策略,并让部分数据指定要使用的代码(在Ruby中,刮刀ClassModule调用),以及指定的其余数据合适的参数。

通常,策略和代码随着时间的推移而发展,您不可能从完全理解如何刮擦所有目标开始。如果一个目标是拥有可维护的代码库,那么持续重新分解是一个很好的开发模型。