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