论坛首页 Java企业应用论坛

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

浏览 4853 次
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-01   最后修改:2009-06-02
ZCMS的网页采集功能界面简洁,但功能强大,共由五部分组成:

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

将会以较多篇幅逐个介绍各部分的设计原理。
可以通过http://demo.zving.com体验
   发表时间:2009-06-01   最后修改:2009-06-01
一个完善的爬虫系统需要考虑的细节真不少
0 请登录后投票
   发表时间:2009-06-02  
强大,
没想到一个完善爬虫要考虑这么多东西
期待楼主对技术细节的分享
0 请登录后投票
   发表时间:2009-06-03  
自己写个抓取的工具,太难了,html解析太复杂了,为什么不用开源的hetrix,nutch,
不过感觉这两个东西用起来,也挺费劲的,容量大,环境配置还挺麻烦,希望楼主开源啊。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics