ZCMS的Web采集(一):千万级别的网络爬虫

ZCMS的网页采集功能界面简洁,但功能强大,共由五部分组成:

一、一个大容量的页面文件容器。

1.1该容器能保存上千万的HTML、图片、视频,但又不能产生过多的小文件。

1.2该容器能通过URL快速存取文件(类似于HashMap)

1.3该容器支持压缩存放。

1.4该容器将页面的概要信息和内容分开存放。

1.5该容器的存取性能不随存取文件数量的增长有大的变化。

二、一个高效的HTTP下载器

2.1完全支持HTTP1.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中置为正文

将会以较多篇幅逐个介绍各部分的设计原理。

可以通过http://demo.zving.com体验

相关推荐