0

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

在我找到的少数文档中,说这是可能的,但没有说如何去做。此外,我是 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。所有代码都可以在这里找到。

4

1 回答 1

1

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

代码应该是这样的:

builder.Register((c, p) => new CustomRobotService(p.TypedAs<Uri>(), c.Resolve<IWebDownloader>())).As<IRobot>().InstancePerDependency();
于 2012-12-27T23:21:14.043 回答