基于客户端/服务端结构的动态网络爬行器的制作方法

文档序号:6330430阅读:507来源:国知局
专利名称:基于客户端/服务端结构的动态网络爬行器的制作方法
技术领域
本发明涉及计算机搜索引擎的网络爬行器(又称网络蜘蛛、网络爬虫或网络机器人)领 域,尤其是能智能判别、挑选文本并能及时通知本地数据库进行网页更新的网络爬行器的技 术方案。 背条技术网络爬行器是用来在万维网(www)上进行发现、探索和检测网页内容的搜索引擎的后台 程序。万维网(W醫)是因特网中分布在许多主机上的超文本标记语言(HTML)页面的关联集 合,页面间通过统一资源定位(URLs)进行链接和访问,统一资源定位(URLs)是HTML页面的地 址。目前,传统搜索引擎的网络爬行器的技术是网络爬行(网页的下载)是由很多集中式 或分布式爬行器来做的。由一个URL服务器来向爬行器发送URL列表。被抓取下来的网页就被 送到存储服务器上。存储服务器再把网页压縮并存储在数据仓库里。每一篇网页都有唯一一 个与之相关联的ID号,称作docID,每当有一个新的URL被分析出来的时候都会被赋予一个 docID。随着web站点的爆炸式增长,即使是G00GLE、 BAIDU这样具有上万个网络爬行器的公 司,对全球所有网站的网页爬行一遍的时间至少也要一周以上。传统网络爬行器存在的缺点 是当网页内容发生变动,或者网页被删除时,本地存储在数据仓库里的网页并不能被及时 动态更新,容易造成URL丢链、死链的问题,信息更新也不及时;另外一个缺点是爬行器对 爬行到的网页上可能存在的木马、蠕虫及病毒不能识别预警,直接就将含病毒代码的URL复 制到本地数据库。 发明内容为了克服现有的网络爬行器不能自动识别网页、自动动态更新网页以及不能对含病毒代 码的网页进行预警的缺点,本发明提供一种新型的网络爬行器的构造方法,该爬行器利用客 户端和服务端进行消息交互通信,能够在网页更新时自动通知搜索引擎的服务器,并利用嵌 入式杀毒程序删除非法网页。网络爬行器分为服务端和客户端,服务端位于搜索引擎服务器上,服务端嵌入了定期 更新的病毒特征代码和査杀工具;客户端相当于一个远程通信程序,安装在每个提供web 内容服务的主机(必须要征得该web内容服务提供商的同意)或者每个web内容服务器与 用户之间的某个代理网关等关键节点上,如果网页被检测到有内容更新,该点的网络爬行器 就自动向搜索引擎服务器转发更新的网页。.本地搜索引擎服务端接到更新网页后,首先启动 嵌入式病毒査杀工具包对网页进行初步杀毒判定,若发现病毒则抛弃该网页,并记录下URL
地址存储在本地数据库,若安全则存储该网页到本地数据库。有益技术效果是可以更加有效地提高搜索引擎本地数据库中网页的更新以及安全质 量,避免用户在使用搜索引擎来搜索网页时产生死链、丢链以及被含病毒网页感染,解决了 现有网络爬行器存在的不足。 具体实麄方式本发明将传统的搜索引擎后台的基于本地服务器的网络爬行器重新构造设计,划分为网 络爬行器客户端(Web Crawler Clients)和网络爬行器服务端(Web Crawler Servers)。服务 端安装在搜索引擎的本地服务器上,与传统的网络爬行器爬行解析网页的功能相同,但增加 了病毒识别的功能,只把安全的网页存储到本地数据库中。客户端捆绑安装在web内容提供 商或者用户访问因特网使用的代理服务器等关键节点上,能及时发现网页URL及内容的更 新,并自动将更新后的URL通过消息机制发送给服务端。具体实现方法如下网络爬行器服务端(1)建立数据库表结构来存放搜索到的网页。主要包括以下表-(i) 数据字典表的建立,该表主要要包括三个字段,主要是用来存放和一个网页相关的单词的情况urlID每个URL的唯一的标识号 urlword 该URL中非重复单词 userword 用户输入的査询关键词 frequency该单词在该网页中的出现的次数(ii) 存储搜索结果,即保存每个URL信息的表,该表中主要的关键字段有 recordID每一条记录的唯一的ID号status 得到该URL内容的状态,比如HTTP—STATUS—TIMEOUT表示下载网页的 最大允许超时url URL的字符串名称 contentjype 内容的类型 last_modified 最新的更改时间 title 该URL的标题 docsize 该URL的文件的尺寸 last—index—time最近一次索引的时间 next—indexjime下一次索引的时间pagetype 表示网页的类型,比如是text,或者是html,或者是图片等等 failures 得到文件时候的曾经失败的次数keywords 对于网页,和该网页相关的关键字description 对于网页,指网页的内容的描述 language 文档所使用的语言 userinfo 点击该url的用户信息 usercount用户点击次数(iii) 因为网页中有很多单词是一些介词、语气助词或者是常用词,它们本身没有多少意 义。把它们称为无用词(useless word)。所以要建立一个表,来存储这些无用词。该表主要 有两个字段-useless word 表示无用词 language 表示所使用的语言(iv) 爬行Web站点沐应遵守网络机器人排斥协议REP(Robots Exclusion Protocol),所有 的网站一般都有一个robot.txt文件用来表示网络爬行器可以访问的权限。必须建立保存web 站点robot信息的数据表,该表主要有以下字段hostinfo Web站点主机的信息 Disallow 不允许robot访问的URL(v) 建立需要屏蔽的那些网页(比如一些色情或者含病毒的网站)的数据表.主要字段就 是网页的URL。(vi) 建立一个我们所要得到的文件类型的表,主要字段是文件的类型和说明。(vii) 建立保存网络爬行器客户端信息的表,主要字段是客户端的编号、位置、消息记录、 活动状态、关联URL等。以上各个表的内容都是网络爬行器服务端在获取Web网页及接收客户端消息的时候动 态增加记录。(2) 为数据库安装防病毒软件,实时更新病毒特征代码库,与网络爬行器服务端建立应用 程序接口(API);(3) 网络爬行器服务端分为搜索程序模块、通信模块以及接口模块;(4) 爬行网页的算法歩骤(i) 使用4个队列结构保存URL:等待队列、处理队列、错误队列、完成队列,在同一 时间URL只能在一个队列中,我们把它称为URL的状态。(ii) 设定网络爬行器搜索程序最大的执行线程数,根据并发式蛙跳启发式搜索算法执行 web网站的搜索,到相应的WWW站点去得到URL指定的文件(这里需要注意的是根据不同 的URL的特点,需要使用不同的协议,比如对于FTP站点要釆用FTP协议,对于HTTP站 点要采用HTTP协议,新闻站点要采用NNTP协议等等)。转下一步。(iii) 把得到的U叫加入到等待队列中.。转下一步。 (iv) 解析网页,将等待队列中的URL依次送到处理队列中。(v) 如果解析网页出错,则将URL送到错误队列中,该队列中的URL不能被移入其他队 列中;否则将URL送到完成队列中,该队列中的URL也不能被移入其他队列中。转下一步。(vi) 结合防病毒软件及搜索主题检测完成队列中的URL,如果有病毒或者不符合主题内 容,则从完成队列删除该URL,并将URL加入屏蔽表中;否则将URL相关信息存储到数 据库的搜索结果表中。转下一步。(vii) 若URL已经在数据库的搜索结果表中存在,则将URL丢弃。否则,转下一步。(vii) 在搜索结果表中统计用户点击次数,对URL表进行排列,当URL表被点击次数超 过事先设置的阈值时,自动重新搜索该URL,转(ii);或者,当现在时间与网页最后更新时 间的差值超过事先设置的时间阈值时,自动重新搜索该URL,转(ii)。否则,转下一步。(viii) 査询数据库中保存网络爬行器客户端信息的表,网络爬行器服务端与该表中所有 客户端进行通信,接收客户端的更新消息,并发送一个确认消息给客户端,将客户端信息保 存到客户端数据表中。客户端收到确认消息后发送URL给到服务端,服务端接收完毕后再 发送一个确认消息给客户端,同时转(iii):若不存在任何更新或者接收不到客户端消息,退 出。网络爬行器客户端 具体步骤(1) 网络爬行器客户端位于web内容提供商或者用户访问因特网使用的代理服务器等关 键节点上,同时自带有一个所关联网站的小型URL数据库。(2) 用户提交一个页面请求给web服务器,web服务器得出一个页面响应,并将得出的 网页结果返回给用户。(3) 当web网页经过该客户端时,客户端递归解析该web网页,抽取Web网站域名或IP 及网页URL和网页主要项目(如网页名称、网页修改日期),将网页用这几个特征值(网站 域名或IP,网页URL,网页名称,网页修改日期)表示。若无web网页经过则退出。(4) 与自带的URL数据库中的对应网站的相关记录(网站域名或IP, URL,网页名称, 网页修改日期)比较,若同一域名(IP)、同一URL的后两项值中任意一项与数据库中的记录 发生差异,则更新自带的数据库中相应的记录,同时发送一个包含URL更新信息的消息给 网络爬行器服务端。若找到相同记录,则转(2)。(5) 收到服务端确认消息后,建立通信连接。(6) 发送更新了的网页URL给服务端。发送完毕后转(3)。
权利要求
1. 一种基于客户端/服务端结构的动态网络爬行器,其特征在于,网络爬行器划分为网络爬行器客户端和网络爬行器服务端;服务端位于搜索引擎的本地服务器上,服务端嵌入了定期更新的病毒特征代码和查杀工具,只把安全的网页存储到本地数据库中;客户端捆绑安装在web内容提供商或者用户访问因特网使用的代理服务器等关键节点上,能及时发现网页URL及内容的更新,并自动将更新后的URL通过消息机制发送给服务端。
2、 照权利要求1所述的一种基于客户端/服务端结构的动态网络爬行器,其 特征在于,网络爬行器服务端(1)建立数据库表结构来存放搜索到的网页,主要包括以下表-(i) 数据字典表的建立,该表主要要包括三个字段,主要是用来存放和一个网 页相关的单词的情况urlID每个URL的唯一的标识号; urlword 该URL中非重复单词; userword 用户输入的査询关键词; frequency该单词在该网页中的出现的次数;(ii) 存储搜索结果,即保存每个URL信息的表,该表中主要的关键字段有; recordID每一条记录的唯一的ID号;status 得到该URL内容的状态,比如HTTP_STATUS—TIMEOUT表示下 载网页的最大允许超时;url URL的字符串名称; contentjype 内容的类型; last—modified 最新的更改时间; title 该URL的标题; docsize 该URL的文件的尺寸;last—index—time最近一次索引的时间; next—index—time下 一 次索引的时间;pagetype 表示网页的类型,比如是text,或者是html,或者是图片等等; failures 得到文件时候的曾经失败的次数; keywords对于网页,和该网页相关的关键字; descripion 对于网页,指网页的内容的描述;language 文档所使用的语言;userinfo 点击该url的用户信息; usercount 用户点击次数;(iii) 该表主要有两个字段 uselessword 表示无用词; language 表示所使用的语言;(iv) 爬行Web站点时,应遵守网络机器人排斥协议REP:该表主要有以下字段-hostinfo Web站点主机的信息;Disallow不允许robot访问的URL;(v) 建立需要屏蔽的那些网页(比如一些色情或者含病毒的网站)的数据表,主要字段就是网页的URL;(Vi)建立一个我们所要得到的文件类型的表,主要字段是文件的类型和说明;(Vii)建立保存网络爬行器客户端信息的表,主要字段是客户端的编号、位置、 消息记录、活动状态、关联URL等;以上各个表的内容都是网络爬行器服务端在获取Web网页及接收客户端消息的时 候动态增加记录;(2) 为数据库安装防病毒软件,实时更新病毒特征代码库,与网络爬行器服务端 建立应用程序接口(API);(3) 网络爬行器服务端分为搜索程序模块、通信模块以及接口模块;(4) 爬行网页的算法步骤(i) 使用4个队列结构保存URL:等待队列、处理队列、错误队列、完成队列, 在同一时间URL只能在一个队列中,称为URL的状态;(ii) 设定网络爬行器搜索程序最大的执行线程数,根据并发式蛙跳启发式搜索算法执行web网站的搜索,到相应的WWW站点去得到URL指定的文件; 转下一步;(iii) 把得到的URL加入到等待队列中;转下一步;(iv) 解析网页,将等待队列中的URL依次送到处理队列中(v) 如果解析网页出错,则将URL送到错误队列中,该队列中的URL不能被移 入其他队列中;否则将URL送到完成队列中,该队列中的URL也不能被移入其他 队列中;转下一步;(vi) 结合防病毒软件及搜索主题检测完成队列中的URL,如果有病毒或者不符 合主题内容,则从完成队列删除该URL,并将URL加入屏蔽表中;否则将URL相关信息存储到数据库的搜索结果表中;转下一步;(vii)若URL已经在数据库的搜索结果表中存在,则将URL丟弃;否则,转下 一步-'(vii) 在搜索结果表中统计用户点击次数,对URL表进行排列,当URL表被点 击次数超过事先设置的阈值时,自动重新搜索该URL,转(ii);或者,当现在时间 与网页最后更新时间的差值超过事先设置的时间阈值时,自动重新搜索该URL,转 (ii);否则,转下一步 —(viii) 査询数据库中保存网络爬行器客户端信息的表,网络爬行器服务端与该表 中所有客户端进行通信,接收客户端的更新消息,并发送一个确认消息给客户端, 将客户端信息保存到客户端数据表中;客户端收到确认消息后发送URL给到服务 端,服务端接收完毕后再发送一个确认消息给客户端,同时转(m);若不存在任何 更新或者接收不到客户端消息,退出。
3、照权利要求1或2所述的一种基于客户端/服务端结构的动态网络爬行器, 其特征在于,网络爬行器客户端-具体步骤(1) 网络爬行器客户端位于web内容提供商或者用户访问因特网使用的代理服 务器等关键节点上,同时自带有一个所关联网站的小型URL数据库;(2) 用户提交一个页面请求给web服务器,web服务器得出一个页面响应,并将 得出的网页结果返回给用户;(3) 当web网页经过该客户端时,客户端递归解析该web网页,抽取Web网站 域名或IP及网页URL和网页主要项目(如网页名称、网页修改日期),将网页用 这几个特征值(网站域名或IP,网页URL,网页名称,网页修改日期)表示。若无 web网页经过则退出;(4) 与自带的URL数据库中的对应网站的相关记录(网站域名或IP, URL,网 页名称,网页修改日期)比较,若同一域名(IP)、同一URL的后两项值中任意一项与 数据库中的记录发生差异,则更新自带的数据库中相应的记录,同时发送一个包含 URL更新信息的消息给网络爬行器服务端。若找到相同记录,则转(2);(5) 收到服务端确认消息后,建立通信连接;(6) 发送更新了的网页URL给服务端。发送完毕后转(3)。
全文摘要
本发明将传统的搜索引擎后台的基于本地服务器的网络爬行器重新构造设计,划分为网络爬行器客户端和网络爬行器服务端。服务端安装在搜索引擎的本地服务器上,与传统的网络爬行器爬行解析网页的功能相同,但增加了病毒识别的功能,只把安全的网页存储到本地数据库中。客户端捆绑安装在web内容提供商或者用户访问因特网使用的代理服务器等关键节点上,能及时发现网页URL及内容的更新,并自动将更新后的URL通过消息机制发送给服务端。有益技术效果是可以更加有效地提高搜索引擎本地数据库中网页的更新以及安全质量,避免用户在使用搜索引擎来搜索网页时产生死链、丢链以及被含病毒网页感染,解决了现有网络爬行器存在的不足。
文档编号G06F17/30GK101211340SQ20061014834
公开日2008年7月2日 申请日期2006年12月29日 优先权日2006年12月29日
发明者蔡阳波, 勇 陈 申请人:上海芯盛电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1