CN101211340A - 基于客户端/服务端结构的动态网络爬行器 - Google Patents
基于客户端/服务端结构的动态网络爬行器 Download PDFInfo
- Publication number
- CN101211340A CN101211340A CNA2006101483423A CN200610148342A CN101211340A CN 101211340 A CN101211340 A CN 101211340A CN A2006101483423 A CNA2006101483423 A CN A2006101483423A CN 200610148342 A CN200610148342 A CN 200610148342A CN 101211340 A CN101211340 A CN 101211340A
- Authority
- CN
- China
- Prior art keywords
- url
- webpage
- client
- service end
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明将传统的搜索引擎后台的基于本地服务器的网络爬行器重新构造设计,划分为网络爬行器客户端和网络爬行器服务端。服务端安装在搜索引擎的本地服务器上,与传统的网络爬行器爬行解析网页的功能相同,但增加了病毒识别的功能,只把安全的网页存储到本地数据库中。客户端捆绑安装在web内容提供商或者用户访问因特网使用的代理服务器等关键节点上,能及时发现网页URL及内容的更新,并自动将更新后的URL通过消息机制发送给服务端。有益技术效果是:可以更加有效地提高搜索引擎本地数据库中网页的更新以及安全质量,避免用户在使用搜索引擎来搜索网页时产生死链、丢链以及被含病毒网页感染,解决了现有网络爬行器存在的不足。
Description
技术领域
本发明涉及计算机搜索引擎的网络爬行器(又称网络蜘蛛、网络爬虫或网络机器人)领域,尤其是能智能判别、挑选文本并能及时通知本地数据库进行网页更新的网络爬行器的技术方案。
背景技术
网络爬行器是用来在万维网(WWW)上进行发现、探索和检测网页内容的搜索引擎的后台程序。万维网(WWW)是因特网中分布在许多主机上的超文本标记语言(HTML)页面的关联集合,页面间通过统一资源定位(URLs)进行链接和访问,统一资源定位(URLs)是HTML页面的地址。目前,传统搜索引擎的网络爬行器的技术是:网络爬行(网页的下载)是由很多集中式或分布式爬行器来做的。由一个URL服务器来向爬行器发送URL列表。被抓取下来的网页就被送到存储服务器上。存储服务器再把网页压缩并存储在数据仓库里。每一篇网页都有唯一一个与之相关联的ID号,称作docID,每当有一个新的URL被分析出来的时候都会被赋予一个docID。随着web站点的爆炸式增长,即使是GOOGLE、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的字符串名称
content_type 内容的类型
last_modified 最新的更改时间
title 该URL的标题
docsize 该URL的文件的尺寸
last_index_time 最近一次索引的时间
next_index_time 下一次索引的时间
pagetype 表示网页的类型,比如:是text,或者是html,或者是图片等等
failures 得到文件时候的曾经失败的次数
keywords 对于网页,和该网页相关的关键字
description 对于网页,指网页的内容的描述
language 文档所使用的语言
userinfo 点击该url的用户信息
usercount 用户点击次数
(iii)因为网页中有很多单词是一些介词、语气助词或者是常用词,它们本身没有多少意义。把它们称为无用词(useless word)。所以要建立一个表,来存储这些无用词。该表主要有两个字段:
uselessword 表示无用词
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)把得到的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给到服务端,服务端接收完毕后再发送一个确认消息给客户端,同时转(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)。
Claims (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的字符串名称;
content_type 内容的类型;
last_modified 最新的更改时间;
title 该URL的标题;
docsize 该URL的文件的尺寸;
last_index_time 最近一次索引的时间;
next_index_time 下一次索引的时间;
pagetype 表示网页的类型,比如:是text,或者是html,或者是图片等等;
failures 得到文件时候的曾经失败的次数;
keywords 对于网页,和该网页相关的关键字;
description 对于网页,指网页的内容的描述;
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给到服务端,服务端接收完毕后再发送一个确认消息给客户端,同时转(iii);若不存在任何更新或者接收不到客户端消息,退出。
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)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101483423A CN101211340A (zh) | 2006-12-29 | 2006-12-29 | 基于客户端/服务端结构的动态网络爬行器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101483423A CN101211340A (zh) | 2006-12-29 | 2006-12-29 | 基于客户端/服务端结构的动态网络爬行器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101211340A true CN101211340A (zh) | 2008-07-02 |
Family
ID=39611372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101483423A Pending CN101211340A (zh) | 2006-12-29 | 2006-12-29 | 基于客户端/服务端结构的动态网络爬行器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101211340A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025559A (zh) * | 2010-11-09 | 2011-04-20 | 百度在线网络技术(北京)有限公司 | 用于基于分级来进行死链检测和处理的方法和网络设备 |
CN102024042A (zh) * | 2010-12-03 | 2011-04-20 | 百度在线网络技术(北京)有限公司 | 一种监控图片展现效果的方法、装置和系统 |
CN102402538A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种自动更新搜索网页的方法和装置 |
CN102456035A (zh) * | 2010-10-28 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种网页资源缓存控制方法、装置及系统 |
CN101795272B (zh) * | 2010-01-22 | 2012-09-19 | 北京网御星云信息技术有限公司 | 非法网站过滤方法及装置 |
CN101739458B (zh) * | 2009-12-02 | 2013-03-27 | 中兴通讯股份有限公司 | 多语化资源的更新方法和系统 |
CN103139279A (zh) * | 2011-12-05 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 文件访问方法和系统 |
CN103207874A (zh) * | 2012-01-17 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 一种网页更新内容的提示方法及系统 |
CN103457924A (zh) * | 2012-06-05 | 2013-12-18 | 珠海市君天电子科技有限公司 | 检测点对点、瞬时生效性型钓鱼网站的方法及系统 |
CN109766501A (zh) * | 2019-01-14 | 2019-05-17 | 北京搜狗科技发展有限公司 | 爬虫协议管理方法及装置、爬虫系统 |
-
2006
- 2006-12-29 CN CNA2006101483423A patent/CN101211340A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739458B (zh) * | 2009-12-02 | 2013-03-27 | 中兴通讯股份有限公司 | 多语化资源的更新方法和系统 |
CN101795272B (zh) * | 2010-01-22 | 2012-09-19 | 北京网御星云信息技术有限公司 | 非法网站过滤方法及装置 |
CN102402538A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种自动更新搜索网页的方法和装置 |
CN102456035A (zh) * | 2010-10-28 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种网页资源缓存控制方法、装置及系统 |
CN102025559B (zh) * | 2010-11-09 | 2013-07-03 | 百度在线网络技术(北京)有限公司 | 用于基于分级来进行死链检测和处理的方法和网络设备 |
CN102025559A (zh) * | 2010-11-09 | 2011-04-20 | 百度在线网络技术(北京)有限公司 | 用于基于分级来进行死链检测和处理的方法和网络设备 |
CN102024042B (zh) * | 2010-12-03 | 2013-11-27 | 百度在线网络技术(北京)有限公司 | 一种监控图片展现效果的方法、装置和系统 |
CN102024042A (zh) * | 2010-12-03 | 2011-04-20 | 百度在线网络技术(北京)有限公司 | 一种监控图片展现效果的方法、装置和系统 |
CN103139279A (zh) * | 2011-12-05 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 文件访问方法和系统 |
CN103207874A (zh) * | 2012-01-17 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 一种网页更新内容的提示方法及系统 |
CN103207874B (zh) * | 2012-01-17 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种网页更新内容的提示方法及系统 |
CN103457924A (zh) * | 2012-06-05 | 2013-12-18 | 珠海市君天电子科技有限公司 | 检测点对点、瞬时生效性型钓鱼网站的方法及系统 |
CN103457924B (zh) * | 2012-06-05 | 2016-08-03 | 珠海市君天电子科技有限公司 | 检测点对点、瞬时生效性型钓鱼网站的方法及系统 |
CN109766501A (zh) * | 2019-01-14 | 2019-05-17 | 北京搜狗科技发展有限公司 | 爬虫协议管理方法及装置、爬虫系统 |
CN109766501B (zh) * | 2019-01-14 | 2021-08-17 | 北京搜狗科技发展有限公司 | 爬虫协议管理方法及装置、爬虫系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101211340A (zh) | 基于客户端/服务端结构的动态网络爬行器 | |
US8203952B2 (en) | Using network traffic logs for search enhancement | |
JP4846922B2 (ja) | ネットワーク上の情報へのアクセス方法及びシステム | |
US8458163B2 (en) | System and method for enabling website owner to manage crawl rate in a website indexing system | |
US8832085B2 (en) | Method and system for updating a search engine | |
US6725214B2 (en) | Apparatus and method to support management of uniform resource locators and/or contents of database servers | |
US7418440B2 (en) | Method and system for extraction and organizing selected data from sources on a network | |
EP2013787B1 (en) | Generating specialized search results in response to patterned queries | |
JP5325229B2 (ja) | 情報収集装置、検索エンジン、情報収集方法およびプログラム | |
US20130073487A1 (en) | Method and apparatus for utilizing user feedback to improve signifier mapping | |
US20040221006A1 (en) | Method and apparatus for marking of web page portions for revisiting the marked portions | |
RU2453916C1 (ru) | Способ поиска информационных ресурсов с использованием переадресаций | |
US7747604B2 (en) | Dynamic sitemap creation | |
US8156227B2 (en) | System and method for managing multiple domain names for a website in a website indexing system | |
US20050216845A1 (en) | Utilizing cookies by a search engine robot for document retrieval | |
WO2021184580A1 (zh) | 域名智能解析方法、装置、电子设备及计算机可读存储介质 | |
US20050125412A1 (en) | Web crawling | |
US20090234805A1 (en) | Sorted search in a distributed directory environment using a proxy server | |
KR102054020B1 (ko) | 참조 웹 크롤의 도움에 의한 웹 코퍼스의 구축 | |
US8533226B1 (en) | System and method for verifying and revoking ownership rights with respect to a website in a website indexing system | |
WO2001075668A2 (en) | Search systems | |
JP2001014353A (ja) | インターネットブラウザ内のブックマークを管理する方法 | |
Leng et al. | PyBot: an algorithm for web crawling | |
US7502773B1 (en) | System and method facilitating page indexing employing reference information | |
Ge et al. | Robots exclusion and guidance protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080702 |