private static void executeLinkProcessor(SimpleSpider spider, IPageLinkCollector linkCollector, FetchCompleteEventArgs args) { if (linkCollector == null) { return; } if (!linkCollector.CanProcessPage(args)) { // recursively call the fallback processor executeLinkProcessor(spider, linkCollector.FallBackProcessor, args); return; } try { var links = linkCollector.GetLinks(args) .ToArray(); // execute spider.AddPages(links, args.Link); } catch { if (!linkCollector.ExecuteFallBackIfError) { throw; } if (linkCollector.FallBackProcessor == null) { throw; } executeLinkProcessor(spider, linkCollector.FallBackProcessor, args); } }
public InitializationParams SetLinkCollector(IPageLinkCollector linkCollector) { LinkCollector = linkCollector; return(this); // Chaining }