网络爬虫开发

来源:互联网 发布:led散热模拟软件 编辑:程序博客网 时间:2024/06/03 17:47

最近的一个项目,基于lucene3.0的全文检索和网络爬虫引擎,主要用来应付企业内部页面爬取和检索。

本来爬虫引擎打算在别人的基础上开发订制,例如compass等。后来还是觉得别人的东西不好用,核心不容易理解。考虑到以后还要做为公司的产品,于是下了决心,历时2个半月,自主开发了一套爬虫引擎。项目取名为Jspider,没有什么特殊含义,最近好像一些项目特别流行以植物、动物命名,下个版本换个好听点的名字,呵呵。

说说构架吧,Jspider是基于jdk1.5的一套多线程、多节点的Application,支持多点布署,可形成一个分布式的高性能网络爬虫系统,迅速完成多个站点的攫取工作。使用mysql作为爬虫数据存取工具。WEB版的管理后台。前后台网络通讯采用了apache的mina2.0。http通信使用了httpClient4.1。
经过一个月的测试和优化修改,服务器稳定性还是比较高的,没出现过崩溃,内存溢出等状况。任务完成自动释放内存,理论上分配1G的内存给jvm,足以完成一个很大型的企业网站页面爬取。
核心处理参照了Hetrix的处理方法。所有的页面处理使用了一个链:下载->URL分析->内容分析提取->入库->地址过滤->地址队列 。内容分析使用了统计去噪,实测去噪效果还是比较满意的。内容提取准确率高达90%以上,当然本算法去噪效果没能达到100% ,下个版本做改进吧,程序都是在不完美中成长。

 

发几个图吧,Web版的控制中心,前端使用ajax作实时刷新,更新服务器数据。

 

 

32个任务运行结束。

原创粉丝点击