Web crawler 使用Stormcrawler对特定子目录进行爬网

Web crawler 使用Stormcrawler对特定子目录进行爬网,web-crawler,stormcrawler,Web Crawler,Stormcrawler,我想能够为给定的网站抓取非常具体的子目录 例如: 在网站www.world.com上可能有多个子目录/world或/bye。这些页面又可能包含多个页面/world/new等。假设这些页面本身包含指向可能不在同一子目录中的其他页面的链接。(/world/new有到/bye/new的链接) 我想完成的是对/world/下的每个页面的内容进行爬网,并且仅对这些页面进行爬网 忽略任何传出链接是一个好主意,除非它也属于同一个子目录?我觉得很多页面都无法访问,因为它们无法直接链接。例如/world/new/

我想能够为给定的网站抓取非常具体的子目录

例如: 在网站
www.world.com
上可能有多个子目录
/world
/bye
。这些页面又可能包含多个页面
/world/new
等。假设这些页面本身包含指向可能不在同一子目录中的其他页面的链接。(
/world/new
有到
/bye/new
的链接)

我想完成的是对
/world/
下的每个页面的内容进行爬网,并且仅对这些页面进行爬网

忽略任何传出链接是一个好主意,除非它也属于同一个子目录?我觉得很多页面都无法访问,因为它们无法直接链接。例如
/world/new/
有一个链接
/bye/new
,该链接又有一个指向
/world/next
的链接。这将导致爬虫程序无法到达
/next
页面。(如果我理解正确的话)

另一种方法是对整个网站进行爬网,然后根据URL post爬网过滤掉内容,这将使作业本身比需要的大得多

Storm crawler是否有任何可用于简化此操作的配置?或者有更好的解决方案


谢谢。

您已经在问题中描述了两种可能的方法。最简单的方法是使用URL过滤器,并限制在您感兴趣的站点区域,但正如您所指出的,您可能会错过一些内容。另一种方法确实更昂贵,因为你必须抓取整个网站,然后作为索引步骤的一部分进行过滤;为此,您可以添加一个简单的解析过滤器,在元数据中为感兴趣的部分中的URL创建一个键/值,并将其用作indexer.md.filter的值


当然,如果站点提供站点地图,您将提前知道它包含的所有URL,在这种情况下,您可以仅依靠URL筛选器。

您在问题中描述了两种可能的方法。最简单的方法是使用URL过滤器,并限制在您感兴趣的站点区域,但正如您所指出的,您可能会错过一些内容。另一种方法确实更昂贵,因为你必须抓取整个网站,然后作为索引步骤的一部分进行过滤;为此,您可以添加一个简单的解析过滤器,在元数据中为感兴趣的部分中的URL创建一个键/值,并将其用作indexer.md.filter的值


当然,如果站点提供站点地图,您将提前知道它包含的所有URL,在这种情况下,您可以仅依靠URL筛选器。

感谢您的回复Julien!遗憾的是,sitesmap不是一个可靠的选项。我想我们应该在索引步骤使用过滤器。嗨,朱利安,与上面的问题相关,有没有一种方法可以在你到达某个URL后停止爬行?例如,一旦爬行器到达
world/new/*
它就不应该再深入了。我知道这可以通过设置最大深度来实现,但深度有时会有所不同。如果
world/new/
下的页面是我的目标,那么对我来说,进一步爬行并跟踪这些页面的链接是毫无意义的。使用SC是否有一种优雅的方法?您可以编写一个自定义URL过滤器,以防止任何URL不在world/new中,但仅当您在world/new中时?由于您正在添加元数据来标记world/new中的URL,以便作为索引的一部分进行筛选,因此可以使用FastURLFilter(请参阅),并在元数据目标上设置范围。如果元数据是在过滤步骤之前创建的,那就太好了,不一定如此。谢谢你的回复Julien!遗憾的是,sitesmap不是一个可靠的选项。我想我们应该在索引步骤使用过滤器。嗨,朱利安,与上面的问题相关,有没有一种方法可以在你到达某个URL后停止爬行?例如,一旦爬行器到达
world/new/*
它就不应该再深入了。我知道这可以通过设置最大深度来实现,但深度有时会有所不同。如果
world/new/
下的页面是我的目标,那么对我来说,进一步爬行并跟踪这些页面的链接是毫无意义的。使用SC是否有一种优雅的方法?您可以编写一个自定义URL过滤器,以防止任何URL不在world/new中,但仅当您在world/new中时?由于您正在添加元数据来标记world/new中的URL,以便作为索引的一部分进行筛选,因此可以使用FastURLFilter(请参阅),并在元数据目标上设置范围。如果元数据是在过滤步骤之前创建的,那么这将是一种优雅的做法,但事实并非如此。