NCrawler 是一個Web Crawler 工具,它可以讓開發(fā)人員很輕松的發(fā)展出具有Web Crawler 能力的應(yīng)用程式,并且具有可以延展的能力,讓開發(fā)人員可以擴(kuò)充它的功能,以支援其他類型的資源(例如PDF /Word/Excel 等檔案或其他資料來源)。 NCrawler 使用多執(zhí)行緒(Multi-threading)模式針對網(wǎng)路資源進(jìn)行探索,并且會依照給定的步驟來處理抓取到的資源,然后依給定的資源來活動(像是寫入資料庫或是擷取部份資料等等)。
目前 NCrawler 支援的搜尋類型有:
HTML 網(wǎng)頁(需要 HtmlAgilityPack.dll)。
PDF 檔案(需要 iTextSharp PDF Library)。
而 NCrawler 支援的中介儲存區(qū)有:
記憶體(使用NCrawler.Crawler 進(jìn)行時)。
資料庫(使用NCrawler.DbServices.Crawler 進(jìn)行時)。
隔離儲存區(qū)(使用NCrawler.IsolatedStorageServices.Crawler 進(jìn)行時)。
NCrawler 的中介儲存區(qū)儲存了包含網(wǎng)址以及探索佇列等資料,以供應(yīng)NCrawler 引擎擷取網(wǎng)址以進(jìn)行作業(yè)之用。并且保留歷史資料以備查詢。
NCrawler 具有強(qiáng)大的URL 探索能力,以及多執(zhí)行緒的處理能力,因此筆者使用它撰寫一支簡單的無效連結(jié)偵測程式(只要不是HTTP 200 的回應(yīng)都算無效),可以使用Windows 排程來定時執(zhí)行,并回報無效連結(jié)的偵測結(jié)果,列出無效連結(jié)的清單報表等。無效連結(jié)偵測程式由InvalidLinkDetector 類別作為核心功能提供者,里面包裝了NCrawler 以及記錄用的XML Document 物件