首页 > 解决方案 > Storm-Crawler 中的重定向处理

问题描述

使用 SC,我应该能够在不发出外链的情况下遵循重定向吗?重定向的 URL 是否应该作为“发现”注入我的后端?似乎不是来自我使用以下设置的小实验:

crawler.yaml:        redirections.allowed: true
                     parser.emitOutlinks: false
urlfilters.json:     "maxDepth": 2

最后,当一个页面被视为重定向到另一个页面时,它是否会通过该页面的其余拓扑(我的意思是无论是在 fetcher 中的什么)?

标签: web-crawlerstormcrawler

解决方案


外链和重定向是分开处理的,见JSoupParserBolt.java#L341。大多数重定向发生在 Emitoulinks 配置无论如何都不适用的 FetcherBolt 中。

重定向的目标将具有 DISCOVERED 状态,除非它已经以不同的状态存在。

请记住,重定向的 URL 像任何外链接一样经过过滤和规范化,因此可能存在阻止添加 URL 的东西,例如对主机名进行过滤。

最后,当一个页面被视为重定向到另一个页面时,它是否会通过该页面的其余拓扑(我的意思是获取器后面的任何内容)?

不,请参阅FetcherBolt


推荐阅读