-1

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

4

2 回答 2

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"
于 2013-09-07T08:47:57.460 回答
1

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

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

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

通常策略和代码会随着时间的推移而发展,您不太可能从全面了解如何抓取所有目标开始。如果一个目标是拥有一个可维护的代码库,那么在这里不断重构是一个很好的开发模型。

于 2013-09-07T08:50:01.083 回答