雅虎開源語義數據Web爬蟲:Anthelion
整個Web世界正在發生劇烈的轉變,包含語義注解的Web頁面讓數據的提取和重用變得越來越容易,而為了提供更好的用戶體驗搜索引擎和社交媒體網站對這種數據的使用也越來越多。要獲取這些數據離不開網絡爬蟲的支持,為此,Yahoo創建了Anthelion項目,一個旨在爬取語義數據的Nutch插件,最近,該項目已在GitHub上開源。
Anthelion是為了更好地爬取嵌在HTML頁面中的結構化數據而設計的,它采用了一種全新的方法來爬取含有豐富數據的頁面上的內容:將線上學 習和Bandit探索方法有效地結合起來,根據頁面上下文以及從之前頁面提取到的元數據反饋預測Web頁面的數據豐富程度。 這種方法明顯優于主題爬取(Focused Crawling)目前所采用的其他技術,極大地提升了爬取效率。
整個數據爬取的流程如下:
正如上面的流程圖所展示的,為了執行主題爬取,該插件實現了三個擴展:
- AnthelionScoringFilter(實現了ScoringFilter接口):在線分類器,它對每一個外鏈打分,同時將新發現的外鏈分為相關的和不相關的兩類。
- WdcParser(實現了Parser接口):解析Web頁面內容并提取語義數據。該擴展基于any23類庫實現,能夠從HTML中提取Microdata、Microformats和RDFa注解。
- TripleExtractor(實現了IndexingFilter接口):將新域存儲到索引中供之后的查詢使用。 </ol>
對于想親身感受Anthelion的用戶而言,直接從GitHub上下載整個項目包或許是一個不錯的選擇,因為它包含了完整的Nutch 1.6代碼和相關插件,不需要任何修改和設置就能運行。如果只想下載插件,那么需要從文件的根目錄下下載nutch-anth.zip并進行相關的設置。
在構建好項目之后,導航到\target文件夾,執行CCFakeCrawler類的main函數就能啟動爬蟲,例如:
java -Xmx15G -cp ant.jar com.yahoo.research.robme.anthelion.simulation.CCFakeCrawler [indexfile] [networkfile] [labelfile] [propertiesfile] [resultlogfile]
其中,indexfile是ID和URL之間的映射文件,networkfile是索引中ID的圖,labelfile是滿足目標函數的ID列表,propertiesfile是配置文件,resultlogfile存儲性能和爬取流程信息。
Anthelion支持init、start、stop和exit操作,在爬取的過程中,用戶還可以通過status命令查看爬取進程的狀態。另外,對于Anthelion爬取數據的精確度Yahoo也進行了評測,結果如下: