一、一个大容量的页面文件容器。
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中置为正文