网站:JavaEye 作者:yuping322 发表时间: 2007-08-24 20:26 此文章来自于 http://www.JavaEye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://yuping.javaeye.com/blog/116248

信息采集系统的技术实现


        信息采集系统指的是按标准格式采集指定网络信息,同搜索引擎的区别在于其采集的目的性更强,采集源范围也比较小。这里简单介绍一下信息采集系统实现上的几个关键问题:


1) 采集网页数据

        VC,Java,VB的网络通讯功能都足够实现信息采集,VC中的Get/Post方式可采集网页信息,也可以直接用socket方式采集,但一般用前一种模式,另外为了提高采集效率都采用多线程技术,在网上的一些Spider程序都是多线程的,可以借鉴.


2) 如何按关键字来信息

        信息采集的一大特点是按多个关键字将信息拆分出来,例如供求信息中的商机标题、联系人、电话、Email、内容等,实现时需要事先定义好这些关键字,然后在网页中搜索,将夹在两个关键字当中的信息采集出来,另外还要注意,网页中的许多关键字是包含空格的,空格数量也不能确定,例如"邮   件",这就要求在查找关键字时要把关键字按单个汉字拆开来匹配,遇到中间的空格要跳过去.这一步实现了,信息就会变的非常有规则,也就可以导入本地库了.


3) 网页中的链结获取算法

        了解HTML的应该清楚,网页中的链结都是通过的标签定义的,但也会分很多情况,例如:  < a href = "...">  这是常见的链结格式,但要注意采集出来的链结可能是完整的http://...,也可能是相对路径,要分别处理;  < a href = ''> 用单引号分隔的,所以用算法获取链结的时候要根据双引号和单引号两种标记来分隔;< a href = .. onclick = javascript:view('..','')> 通过javascript的函数处理链结,算法上就麻烦了许多。


4) 无效数据的过滤

        即使通过关键字的方式摒弃了许多广告信息,但在关键字信息中也会有不少无效数据,包括一些信息开头的空格


5) 特定数据的获取算法

        Email,电话等数据符合一定的规范,一般可以用一些算法提取出来,也可以用正则表达式技术来获取,在网络上有不少此类算法.在信息采集中,Email和电话等关键信息是比较分散的,需要用提取算法把这些信息提取出来放在正确的位置.这是非常有必要的,因为信息采集系统往往会有邮件群发的功能.


信息采集的整个流程可总结如下:


 a) 首先,获取网页的完整信息

 b) 用算法获取网页中的正文信息,即抛弃HTML的标签文本

 c) 去除多余的空行

 d) 按定义好的关键字将信息分隔开

 e) 对信息进行无效数据过滤

 f) 信息入本地库

 g) 获取网页中的链结,对该链结从a)步骤开始重复,但注意网页中的许多链结是广告或无效的,因此要事先定义好一些链结关键字,只有包含关键字的链结才处理




《 信息采集系统的技术实现 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>





JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA



文章来源: http://yuping.javaeye.com/blog/116248