NCrawler 是一个Web Crawler 工具,它可以让开发人员很轻松的发展出具有Web Crawler 能力的应用程式,并且具有可以延展的能力,让开发人员可以扩充它的功能,以支援其他类型的资源(例如PDF /Word/Excel 等档案或其他资料来源)。 NCrawler 使用多执行绪(Multi-threading)模式针对网路资源进行探索,并且会依照给定的步骤来处理抓取到的资源,然后依给定的资源来活动(像是写入资料库或是撷取部份资料等等)。
目前 NCrawler 支援的搜寻类型有:
HTML 网页(需要 HtmlAgilityPack.dll)。
PDF 档案(需要 iTextSharp PDF Library)。
而 NCrawler 支援的中介储存区有:
记忆体(使用NCrawler.Crawler 进行时)。
资料库(使用NCrawler.DbServices.Crawler 进行时)。
隔离储存区(使用NCrawler.IsolatedStorageServices.Crawler 进行时)。
NCrawler 的中介储存区储存了包含网址以及探索伫列等资料,以供应NCrawler 引擎撷取网址以进行作业之用。并且保留历史资料以备查询。
NCrawler 具有强大的URL 探索能力,以及多执行绪的处理能力,因此笔者使用它撰写一支简单的无效连结侦测程式(只要不是HTTP 200 的回应都算无效),可以使用Windows 排程来定时执行,并回报无效连结的侦测结果,列出无效连结的清单报表等。无效连结侦测程式由InvalidLinkDetector 类别作为核心功能提供者,里面包装了NCrawler 以及记录用的XML Document 物件