使用Nokogiri,需要指定CSS类来获取使用at_css包含的数据。但是,当要求刮掉多个网站时,我们如何处理同样的问题呢?设计和使用的CSS类会有所不同?
答案 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中,刮刀Class
或Module
调用),以及指定的其余数据合适的参数。
通常,策略和代码随着时间的推移而发展,您不可能从完全理解如何刮擦所有目标开始。如果一个目标是拥有可维护的代码库,那么持续重新分解是一个很好的开发模型。