【问题标题】:What would be the best approach to scrape multiple websites using Nokogiri? [closed]使用 Nokogiri 抓取多个网站的最佳方法是什么? [关闭]
【发布时间】:2013-09-07 08:45:36
【问题描述】:

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

【问题讨论】:

  • 虽然我已经回答过了,但是我觉得这个问题还是比较模糊的,你应该介绍一下你目前为止的工作,以及你的问题是什么。如果那不是代码,而可能是 OO 结构/设计,那么这仍然是对问题的改进。
  • 您在询问如何在网页上找到一些数据,但您告诉我们您不知道 css 类,但您没有告诉我们您对这些数据了解多少..

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    "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 用于引用版权政策。如果 OP 的意图是提供某种元服务,那么不遵守这一点将使元服务面临法律诉讼的风险。
    • 无论如何都要牢记网站的政策,但仅仅因为某些东西违反了 T&Cs,它并不总是使其非法,而且在网络抓取的情况下,大多数情况下它肯定是不违法——公司宁愿你相信它是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2018-03-10
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多