在NCrawler中自定义机器人过滤

时间:2012-12-27 13:12:40

标签: c# web-crawler

实现机器人过滤器的正确方法是什么,在Ncrawler中扩展接口IRobot

在我发现的少数文档中,it is possible说,但没有说明如何做。此外,我是C#的新手,所以我不理解一些代码。

特别是在示例中找到的以下部分,其中似乎很容易引入新规则类但不是新的机器人过滤器:

// Register new implementation for ICrawlerRules using our custom class CustomCrawlerRules defined below
NCrawlerModule.Register(builder =>
        builder.Register((c, p) =>
            {
                NCrawlerModule.Setup(); // Return to standard setup
                return new CustomCrawlerRules(p.TypedAs<Crawler>(), c.Resolve<IRobot>(p), p.TypedAs<Uri>(),
                p.TypedAs<ICrawlerHistory>());
            }).
        As<ICrawlerRules>().
        InstancePerDependency());

RobotService类已在某处“注册”,但CustomCrawlerRules内的任何位置都没有设置。可以找到所有代码here

1 个答案:

答案 0 :(得分:1)

尝试在 NCrawlerModule 注册表中注册您自己的 CustomRobotService

代码看起来应该是这样的:

builder.Register((c, p) => new CustomRobotService(p.TypedAs<Uri>(), c.Resolve<IWebDownloader>())).As<IRobot>().InstancePerDependency();