查找發現了兩個比較好的網頁正文提取算法:
- 國內:哈工大的《基於行塊分布函數的通用網頁正文抽取》該算法開源網址為http://code.google.com/p/cx-extractor/,效果為親測,文章中呈准確率95%以上,對1000個網頁抽取耗時21.29秒。看了文章感覺不錯,無需html解析,效率應該會高些。
- 國外:大名鼎鼎的arc90實驗室的Readability,該算法已經商業化實現了firefox,chrome插件,及flipboard,並且已經集成進了safari瀏覽器。未詳細測試,大致測試感覺准確率應該至少在90%以上。該算法需要解析DOM樹,因此稍執行效率稍微慢一些。大致過程為,先解析DOM樹,所有標簽小寫。然后去除所有“script”標簽內容,再通過一對正則表達式的配合提取。具體算法還未看。其插件中包含算法JAVASCRIPT源碼。有熱心人士已將其用c#和php實現,源碼地址如下:
- 官方網站http://www.readability.com/
- c#實現一:https://github.com/marek-stoj/NReadability(親測,效果不錯)
- c#實現二:http://code.google.com/p/nreadability/(未親測)
- php實現一: http://code.fivefilters.org/p/php-readability/(未親測)
- php實現二:https://github.com/feelinglucky/php-readability(未親測)作者主頁:http://www.gracecode.com/archives/3061/
- node.js版:https://github.com/arrix/node-readability/(未親測)