一、一個大容量的頁面文件容器。
1.1 該容器能保存上千萬的HTML、圖片、視頻,但又不能產生過多的小文件。
1.2 該容器能通過URL快速存取文件(類似于HashMap)
1.3 該容器支持壓縮存放。
1.4 該容器將頁面的概要信息和內容分開存放。
1.5 該容器的存取性能不隨存取文件數量的增長有大的變化。
二、一個高效的HTTP下載器
2.1 完全支持HTTP 1.0/1.1
2.2 支持Cookie
2.3 支持HTTP壓縮
2.4 自動識別網頁字符集
2.5 能夠處理鏈接跳轉,包括302/303跳轉、通過JS跳轉以及通過Meta的refresh跳轉。
2.6 能夠識別無限URL循環。
2.7 能夠自動識別分頁的URL(即列表中的下一頁,第幾頁等鏈接)
2.8 能夠處理ASP.NET形式的通過表單回發處理的分頁。
2.9 能夠避免無限分頁的情況(有的網站上永遠有下一頁,但下一頁的內容總是和上一頁相似)
2.10 支持通過代理下載
2.11 支持超時設置
2.12 支持最大下載數
2.13 支持多線程,可以設置線程數
三、一個完善的URL提取器
3.1 能夠從HTML中正確提取全路徑URL
3.2 支持過濾后綴
3.3 為URL編碼,但己編碼的URL要能自動識別,避免再次編碼
3.4 只有符合指定形式的URL才提取
3.5 支持過濾指定形式的URL
四、一個便利的結構化數據提取器
4.1 能夠通過模板方式提取結構化信息,模板應該簡易,從代表性HTML中摘取經過簡單修改即可提取(不能使用正則表達式,對于HTML正則表達式需要轉義的字符過多)
4.2 提取時能夠自動得到一個二維表
4.3 提取結果支持過濾掉指定形式的內容塊(比如正文中的廣告)
4.4 能夠自動下載正文中的圖片
4.5 能夠去掉正文中的超鏈接
五、一個準確率較高的正文提取器
5.1 以95%以上的準確率從HTML中提取文章正文
5.2 自動識別首頁和列表頁,不從其中提取正文
5.3 未成功提取正文時將Meta的Content中置為正文