【问题标题】:Full or incremental scraping - What do people use? [closed]完全或增量抓取 - 人们使用什么? [关闭]
【发布时间】:2013-04-15 07:00:12
【问题描述】:

我有一个关于从网站上抓取内容的问题。让我们想象在这个例子中,我们谈论的是分类风格网站上的内容,例如亚马逊或 Ebay。 关于此内容的重要说明是它可以更改并且可以删除。

在我看来,我有两个选择:

  1. 每天一次全新的刮擦。我以空白开始新的一天 数据库模式并每天完全重新抓取每个站点并插入 将内容添加到新数据库中。

  2. 增量抓取,我从之前的内容开始 昨天刮了,在重新刮网站时,我做了以下事情:

    Check existing URL      
            Content is still online and is it the same - Leave in DB                        
            Content is not availiable - Delete from DB      
            Content is different - Rescrape content
    

我的问题是,进行增量抓取所增加的复杂性真的值得吗?这样做有什么好处吗?我真的很喜欢每天进行一次新的抓取的简单性,但这是我的第一个抓取项目,我真的很想知道抓取专家在这种情况下会做什么。

【问题讨论】:

  • 每天都在亚马逊或 Ebay 上全面搜索?对我来说听起来不太现实。

标签: python mysql web-scraping screen-scraping scrapy


【解决方案1】:

我认为答案取决于您如何使用已抓取的数据。有时增加的复杂性是值得的,有时则不然。 问问自己:我的刮刀有什么要求,我需要做多少工作才能满足这些要求?

例如,如果您出于研究目的而进行刮擦,并且每天进行一次新刮擦更容易,那么这可能就是您想要走的路。

正如您所说,执行增量抓取肯定更复杂,因为您需要确保正确处理已更改的内容(未更改、已更改、已删除)。只要确保您也有处理新内容的方法。

话虽如此,增量抓取可能是合理的甚至是必要的,这是有原因的。例如,如果您正在抓取的数据之上构建一些东西,并且由于积极的抓取工作而无法承受停机时间,您可能需要考虑增量抓取。

另请注意,实现增量抓取的方法不止一种:可以实现多种增量抓取。例如,您可能希望将某些内容优先于其他内容,例如更频繁地更新热门内容而不是不受欢迎的内容。这里的问题是,您可以添加到刮板的复杂程度没有上限。事实上,人们可以将搜索引擎爬虫视为高度复杂的增量抓取工具。

【讨论】:

    【解决方案2】:

    我实现了一个基于云的应用程序,可让您自动进行抓取。

    它将网站转换为 JSON/CSV 您可以选择每天下载更新的完整数据集,也可以只下载实施差异。

    This example of a daily recurring scrape job for movie showtimes in Singapore

    【讨论】:

      猜你喜欢
      • 2013-05-08
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多