论文摘要
随着因特网的迅猛发展,WEB信息的增加,用户要在信息海洋里查找信息,就像大海捞针一样,搜索引擎服务能成为最受欢迎的服务是因为它帮助用户在浩瀚的互联网快速的查找信息。在海量的网页里找信息,按照传统方式需要用户逐个网站逐级目录查找,要耗费大量的精力和时间,几乎是不可能实现的任务。互联网的信息量爆炸性增长,几年前全球式搜索引擎收录的网页量只有几千万页,而现在已经达到几十亿页。数量增加带来的是搜索服务的品质下降,查询的结果集已经是海量级的,多达数十万条结果,结果里存在大量的重复信息和垃圾信息。用户越来越感觉到很难在短时间内准确的筛选出需要的内容,很难迅速的找到需要的信息。因此,搜索服务需要细化,需要提供更专业,更有效的服务。垂直搜索引擎是针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。垂直搜索引擎主要涉及的技术有:爬虫,网页结构化信息抽取技术或元数据采集技术,分词和索引,其它信息处理技术。本文的工作主要研究垂直搜索引擎的爬虫系统,并用程序实现整个爬虫系统。网络爬虫(也叫网络蜘蛛或网络机器人)通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环直到把这个网站所有需要的网页都抓取完为止。整个互联网当成一个网站,爬虫就可以用这个原理把互联网上所有的网页都抓取下来。爬虫系统需要运用到的技术有分布式、并发、链接选择算法、链接过滤消重算法等。有色网(Colored Petri Net,以下简称CPN)是具有层次性的高级Petri网,是分布式并发系统建模和分析的最佳工具之一,用它建立的模型是可执行的,有利于动态仿真。CPN库所的颜色可以是任意复杂的数据,大大简化系统的复杂度;具有层次结构,可以从整体到局部、由粗到精地把系统分页,逐步细化,突出重点。CPN是一种图形化建模工具,也是一种形式化数学工具。本文采用CPN来为爬虫系统建立模型,并验证其正确性。但是,CPN是用来描述和分析要开发的系统模型的工具,不是计算机的实现工具。本文的最终目标是要开发出能够运行的爬虫系统,需要把CPN建立的模型转化成计算机的实现。当前主流的软件开发技术是面向对象技术,我们也将用面向对象技术实现爬虫系统。在面向对象系统使用最为广泛的建模工具是UML,UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术,它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。在CPN模型的基础上,提取用例,建立系统的用例图,结合用例图和CPN模型图,设计系统静态图,主要设计系统的关键类,并用状态图说明系统的关键部分。本文选用java语言作为软件的实现工具,因为java语言有良好的跨平台性,可以在window平台开发,移植到linux平台运行。系统选用mysql数据库存储数据,linux为运行平台。作为北京大正语言知识处理有限公司农业垂直搜索引擎项目的数据采集系统,要抓取的网站数量总共92个,新闻资讯类网站82个,供求类网站10个。爬虫开启10个线程抓取新闻资讯类网站,3个线程抓取供求类网站。第一次完全抓取时,新闻资讯类网站平均每小时抓取1.5万个网页,供求类的平均每小时抓取4000个网页,平均每天可以抓取40万网页(晚上速度会快些)。十天的时间完成除阿里巴巴供求信息外所有网站的完全抓取,总共抓到网页410万。此后每天属于增量更新,目标网站所发布的信息可以在半小时以内被抓取,每天大约更新8000条数据。