网络爬虫系统及其获取资源的方法和网络资源抓取装置的制作方法

文档序号:7702366阅读:142来源:国知局
专利名称:网络爬虫系统及其获取资源的方法和网络资源抓取装置的制作方法
技术领域
本发明涉及网络资源搜索技术,尤指一种网络爬虫系统及其获取互联网/ 局域网上的资源的方法和网络资源抓取装置。
背景技术
随着网络应用的日益发展和普及,越来越多的资源^i文置到了网络上。在 承载有海量资源的网络中,用户面临的一个重大问题就是如何才能快速而准确 地找到所需的资源。依靠现有的互联网搜索引擎, 一方面,不能搜索到局域网 的资源;另一方面,由于资源数量过于庞大,导致索引更新不及时,进而导致 可能搜索不到最近更新的资源;而且,搜索出来的结果一大堆,<^艮多并不是 想要的信息等。
于是,很多企业利用现有的开源搜索引擎来构建网络搜索引擎,而其资源 的提供者正是网络爬虫。网络爬虫,是一种能自动4W互联网或局域网上的资 源的软件。网络爬虫除了给搜索引擎提供原始资源外,还有一些其它的应用, 比如对某些网站定期进行监控等。
现有的网络爬虫在易用性及可定制化程度方面,还不能够满足不同用户的 个性化需求,对于一些用户的需求,需要用户进行二次编程开发才能满足;现 有的网络爬虫提供的可设置项较少,同样也很难满足用户的个性化搜索需求; 现有的网络爬虫有的甚至没有友好的配置界面。总之,对于现有的网络爬虫, 用户使用起来,不方便,不能灵活进行对网络资源的搜索。

发明内容
有鉴于此,本发明的主要目的在于提供一种网络爬虫系统,能够改善网络 爬虫的易用性,使得用户方便、灵活地搜索网络资源。本发明的另一目的在于提供一种网络爬虫系统获取资源的方法,能够改善 网络爬虫的易用性,4吏得用户方便、灵活地搜索网络资源。
本发明的又一目的在于提供一种网络资源4爪取装置,能够改善网络爬虫的 易用性,使得用户方便、灵活地搜索网络资源。
为达到上述目的,本发明的技术方案是这样实现的
一种网路爬虫系统,包括用户定制管理单元、控制单元和抓取单元,其中,
用户定制管理单元,用于提供用户操作界面,用户通过用户操作界面进4亍
定制操4乍并保存定制结果;
控制单元,用于读取用户定制管理单元产生的定制结果,向抓取单元发送 任务抓取通知,启动*1*任务;
抓取单元,用于对设置的任务实施抓取。
该系统还包括监控单元,用于对抓取行为进行监控,显示抓取任务的运行 状态,查询g任务的结果。
所述用户定制管理单元的定制操作包括以下之一或任意组合抓取深度、 才;i^L任务的创建、抓取资源的分类、^1^取资源的范围、*1*^户端设置、 到的资源如何保存、抓取报告设置。
所述^^单元具体用于,根据用户设置定制操作中的g深度,对网络资 源进行棘;
其中,所述^^单元包括第一队列和第二队列,第一队列用于存放当前深 度的统一资源定位符URL,第二队列用于存放下个深度的URL。
所述第二个队列中存放的下个深度的URL是在对所述第一队列中的URL 中的网络资源进行4;i^过程中获取的。
所述抓取单元还包括一列表,用于保存当前4g过程中得到的所有URL及 其抓取状态信息。
一种网络爬虫系统获取资源的方法,基于权l所述的系统,该方法包括
用户通过用户操作界面进行定制操作并保存定制结果;
根据用户的定制结果,启动* 任务并对设置的任务实施抓取所述定制结果包括以下之一或任意组合抓取深度、^W任务的创建、抓 取资源的分类、^!^取资源的范围、抓取客户端设置、抓取到的资源如何保存、
4;i^a艮告设置。
所述抓取单元包括第 一队列和第二队列,所述第 一队列存放当前深度的 URL,所述第二队列存放下个深度的URL;所述定制操作中包括抓取深度;所 述实施扭阜包括
4棘单元从第一队列中提取URL,根据所述的URL对网络资源进行抓取;
抓取单元根据设置的网络资源的抓取深度,判断是否需要根据第二队列中 的URL对网络资源进行抓取,如果是,则继续抓取。
所述抓取任务为一个或一个以上;当为一个以上抓取任务时,各个抓取任 务并行执行,并且相对独立,每个 任务各自维护自身的抓取状态。
一种网络资源*1^取装置,包括抓取单元,
所述B单元用于根据用户设置的抓取深度,对网络资源进行4^;
其中,所述^I^取单元包括第一队列和第二队列,第一队列用于存;^文当前深 度的统一资源定位符URL,第二队列用于存放下个深度的URL。
所述第二个队列中存放的下个深度的URL是在对所述第一队列中的URL 中的网络资源进行抓取过程中获取的。
所述抓取单元还包括一列表,用于保存当前抓取过程中得到的所有URL及
其才;l^状态信息。
从上述本发明提供的技术方案可以看出,本发明网络爬虫系统包括用户定 制管理单元、控制单元和抓取单元,用户通过用户定制管理单元提供的用户操
作界面进行定制操作并保存定制结果;控制单元和4 单元根据用户的定制结
果,启动B任务并对设置的任务实施抓取行为。本发明的网络爬虫系统提供 了友好的用户定制界面,而且设置项内容丰富,用户无需进行二次编程开发就 能满足其需求,很好地改善了网络爬虫的易用性,4吏得用户方便、灵活地实现 了对网络资源的搜索。


图1为本发明网络爬虫系统的组成结构示意图2为本发明网络爬虫系统获取资,源的方法的流程图3为本发明网络爬虫系统获取资源的实施例的流程图。
具体实施例方式
图1为本发明网络爬虫系统的组成结构示意图,如图1所示,包括用户定 制管理单元、控制单元和4爪取单元,其中,
用户定制管理单元,用于提供友好的用户操作界面,用户通过用户操:作界 面进行定制操作并保存定制结果。用户定制管理单元,还进一步用于通过所述 用户操作界面设置用户权限。
控制单元,用于读取用户定制管理单元产生的定制结果,向抓取单元发送 任务抓取通知,启动g任务。
孤取单元,用于对设置的任务实施^W行为。具体为创建URL队列,并启 动抓取线程进行网络资源的抓取,分析和存储。
抓取单元具体用于,根据用户设置定制操作中的抓取深度,对网络资源进 行抓取;其中,所述4体单元包括第一队列和第二队列,第一队列用于存放当 前深度的统一资源定位符URL,第二队列用于存放下个深度的URL。笫二个队 列中存放的下个深度的URL是在对所述第一队列中的URL中的网络资源进行 抓取过程中获取的。
在抓取单元中,预先设置有两个队列,用于保存统一资源定位符(URL, 也简称为网址)。第一个队列是当前深度队列Ql,存放需立即处理的URL,第 二个队列是下个深度队列Q2,当队列Ql被处理完后,队列Ql的元素将全部 移至Q2。其中,队列中成员的信息包括URL, 4爪取状态(比如未抓取、已成 功**、重定向、网络异常、网站异常等)等。队列可以使用内 或内存数据 库来实现。
在抓取单元中,还预先设置一个列表,用于保存本次任务即当前抓取过程中得到的所有URL及其抓取状态等信息,其目的是避免URL被重复处理,这 个列表使用内存或者内存数据库实现。
本发明网络爬虫系统还可以包括监控单元,用于对抓取行为进行监控。显 示抓取任务的运行状态,查询抓取任务的结果。
图2为本发明网络爬虫系统获取资源的方法的流程图,结合图1,具体包 4舌以下步骤
步骤200:用户通过用户操作界面进行定制操作并保存定制结果。 用户可以定制一个或一个以上任务,对每个任务分别进^f亍定制。用户操作 界面可以采用桌面应用程序,或网页应用程序等实现。进一步地,用户操作界 面可以设置权限,有权限的用户才能对其进行定制操作。定制结果可以保存在 文件或者数据库中。定制结果中包括一个或一个以上的4爪取任务。 用户定制管理单元的定制结果包4舌但不限于以下项
1) 抓取任务的创建,包括任务的启动时间,孤取周期,4 的起始统一资 源定位符(URL,也称为网址);
2) 抓取资源的分类,比如采用URL前缀来进行分类;
3) 孤取资源的范围,包括^^的深度,可以^1^的URL前缀或正则表达
式;
4) 抓取客户端设置,包括是否使用网络代理服务器(Proxy )、使用的超文 本传输协议(HTTP)的版本、使用的用户代理(UserAgent), HTTP请求的超 时时长等;其中,网站服务器以使用的User Agent来区别客户端类型;
5) 抓取到的资源如何保存,包括要保存的资源的文件类型,要保存的资源 符合的特征等;
6) 抓取报告设置,包括抓取资源所花时间,抓取失败的URL列表,资源 的更新频率等。
步骤201: 4艮据用户的定制结果,启动抓取任务并对设置的任务实施抓取行为。
多个^W任务并行执行,并且相对独立的,每个任务各自维护自身的4;f^状态。控制单元根据任务的设置,对任务进行调度。
在抓取单元中,预先设置有两个队列,用于保存统一资源定位符(URL, 也简称为网址)。第一个队列是当前深度队列Ql,存放需立即处理的URL,第 二个队列是下个深度队列Q2,当队列Ql被处理完后,队列Ql的元素将全部 移至Q2。其中,队列中成员的信息包括URL,抓取状态(比如未抓取、已成 功*]^、重定向、网络异常、网站异常等)等。队列可以使用内存或内存数据 库来实现。具体地,抓取单元包括第一队列和第二队列,所述第一队列存放当 前深度的URL,所述第二队列存放下个深度的URL;所述定制操作中包括g 深度;所述实施抓取包括
4脉单元从第一队列中提取URL,根据所述的URL对网络资源进行抓取;
抓取单元根据设置的网络资源的抓取深度,判断是否需要根据第二队列中 的URL对网络资源进行抓取,如果是,则继续4爪取。
在抓取单元中,还预先设置一个列表,用于保存本次任务中得到的所有 URL及其抓取状态等信息,其目的是避免URL被重复处理,这个列表使用内
存或者内存数据库实现。
用户设置的一个或多个起始URL放在Q1中,当前深度为0。每个URL使
用 一个线程来完成下载及分析。
进一步地,还包括步骤202:对抓取行为进4亍监控。
4;l^任务结束后,按用户的定制输出抓取报告。4 报告内容可以包括
每个URL的处理时间,HTTP回应状态码;
标记为网络错误的URL列表;
标记为网站服务器错误的URL列表;
更新频率较高的URL列表;
任务执行的总时长。
进一步地,抓取任务完毕后,判断是否需要通知用户,如果需要,则以设 定的方式(例如邮件或短信)通知用户任务执^f亍完毕。
图3为本发明网络爬虫系统获取资源的实施例的流程图 假设用户已通过用户操作界面进^f亍定制操作并将需立即处理的URL保存到了队列Ql中,如图 3所示,包括
步骤300:从队列Ql中获取一个URL。同时,将其从队列Ql中删除,将 该URL交给^/^取线程处理。
步骤301:从指定URL下载资源到本地内存。
按照HTTP协议,使用现有的下载工具类来完成从指定URL下载资源到本 地内存的过程。在本步骤的实现过程中,会应用到用户设置的Proxy、 HTTP请 求超时时长、UserAgent等信息。User Agent设置主要用于模拟不同的浏览器, 有些网站同时支持HTTP和WAP ,访问同 一个URL ,使用不同的User Agent得 到的内容是不同的。
其中,在访问URL时,可能会遇到重定向网页,需要将新URL进行下载 处理,原URL被标记为重定向,如果重定向次数超过用户配置的允许重定向最 大次数,则抓取状态被标记为网站服务器错误;。
在访问URL时,可能会返回网络连接方面的错误,例如HTTP请求连接超 时、目的主机不可访问等,将其4;l^状态标记为网络错误;
在访问URL时,可能会返回服务端错误信息,例如状态码为4XX, 5XX 等,将其抓取状态标记为网站服务器错误。
步骤302:判断是否下载成功,如果不成功,则进入步骤310;如果成功, i^步骤303。
当4^状态被标记为网站服务器错误,或网^4晉误时,表明下载不成功。
步骤303:判断下载的资源是否包含网页。简单判断方法为提取HTTP头 的多用途互联网邮件扩展(MIME)信息,如果MIME信息是text/html或 text/wml,则判断出包含网页,继续执行步骤304;否则,判断出下载的资源中 不包含网页,ii^步骤308。
步骤304:分析网页,提取新URL。对于网页,需要提取网页内容中包含 的URL来取得更多的URL。超文本标记语言(HTML)网页的处理过程如下
通过返回的HTTP头的上下文类型(Content-Type)属性和网页的HTTPMETA信息中的Content-Type属性来判断网页的字符集;具体判断方法属于本 领域技术人员惯用技术手段,这里不再详述。
通过现有的HTML解析器来解析得到的网页,大部分网页是通过A标签 的HREF属性来链接到其它网页的,要对解析后提取到的A标签进行处理,由 于很多A标签HREF属性没有使用标准的URL,而是使用相对路径,如々 hre^"../b.html">aaa</a>,这种HREF属性要根据所在网页的URL来进行计算, 最后才得到真正的URL,并给该URL保存其来源A标签的文字内容以作为默 认标题;具体实现属于本领域技术人员惯用技术手段,这里不再详述。
提取网页的标题(TITLE)标签包含的文字作为标题。
无线标记i吾言(WML)网页处理与HTML网页类似。
步骤305:对提取的新URL进行规整。
对提取到的每个新的URL进行规整,目的是消除其地址信息中使用的上下 M达式等信息。
t匕^t口 http:〃www.l63.com/a/b.html和http:〃www.l63.com/a/../a/b.html虽然 看似不同,但其实是同一个URL。
步骤306:判断新URL是否有效,如果有效,则继续执4于步骤307;否则 进入步骤308。
计算新的URL的深度,为当前深度加1,再次判断该新URL是否有效判 断依据如下
该新URL是否重复,如果重复则无效;
该新URL是否符合用户配置的URL前缀,如果不符合则无效; 该新URL的深度是否已超出,如果超出则无效。 如果最后结果是有效的URL,则执行步骤307,否则执行步骤308。 步骤307:将新URL按照用户设置的分类信息打上分类标记,并放入队列Q2。
步骤308:判断用户是否需要将现在内存中保存的资源进行存储。判断的 依据包括文件是否更新过,可以通过内容的MD5摘要值或者简单的就通过文件大 小来判断,没有更新的就不用保存;
文件类型是否为用户设置的可以保存的类型; 是否符合用户设定的其他要求,如包含/不包含设定的关键字; 是否超过最大可保存的文件大小; 是否超过允许保存的最大文件个数等。 判断结果为可保存,则执行步骤309,否则,iiX步骤310。 步骤309:保存资源到本地。
为了避免文件名沖突、避免包含非法的字符,可以采用通用唯一识别码 (UUID)作为保存的资源名,并将URL、 MIME信息、保存的文件名和标题 作为一条记录4呆存到文件或者数据库中,供搜索引擎的索引程序或其它程序进 行分析时使用。
步骤310:结束本流程。
当队列Ql中已经没有内容时,并且当前任务的所有抓取线程都结束时, 表示当前深度的URL已经抓取完毕。这时,如果队列Q2中还有URL,则将队 列Q2的URL转移到队列Ql中,再次为每个URL启动抓取线程;如果队列 Q2中不存在URL,则本次抓取任务结束。
进一步地,^i^任务结束后,按用户的定制输出抓取报告。抓取报告内容 可以包括
每个URL的处理时间,HTTP回应状态码; 和/或标记 为网络错误的URL列表; 和/或标记为网站服务器错误的URL列表; 和/或更新频率较高的URL列表; 和/或任务执行的总时长。
进一步地,抓取任务完毕后,判断是否需要通知用户,如果需要,则以设 定的方式(例如邮件或短信)通知用户任务执行完毕。
接下来,按用户设置的周期,计算执行下一次抓取任务的时间点,通知主控模块进行任务调度。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种网路爬虫系统,其特征在于,包括用户定制管理单元、控制单元和抓取单元,其中,用户定制管理单元,用于提供用户操作界面,用户通过用户操作界面进行定制操作并保存定制结果;控制单元,用于读取用户定制管理单元产生的定制结果,向抓取单元发送任务抓取通知,启动抓取任务;抓取单元,用于对设置的任务实施抓取。
2、 根据权利要求l所述的网路爬虫系统,其特征在于,该系统还包括监控单元,用于对4g行为进行监控,显示B任务的运行状态,查询抓取任务的结果。
3、 根据权利要求l或2所述的网路爬虫系统,其特征在于,所述用户定制管理单元的定制操作包括以下之一或任意组合抓取深度、抓取任务的创建、抓取资源的分类、抓取资源的范围、4体客户端设置、抓取到的资源如何保存、4;M^报告设置。
4、 根据权利要求1或2所述的网路爬虫系统,其特征在于,所述抓取单元具体用于,根据用户设置定制操作中的抓取深度,对网络资源进行4^;其中,所述4爪取单元包括第一队列和第二队列,第一队列用于存放当前深度的统一资源定位符URL,第二队列用于存放下个深度的URL。
5、 根据权利要求4所述的网路爬虫系统,其特征在于,所述第二个队列中存放的下个深度的URL是在对所述第一队列中的URL中的网络资源进行^^过程中获取的。
6、 根据权利要求4所述的网路爬虫系统,其特征在于,所述抓取单元还包括一列表,用于保存当前抓取过程中得到的所有URL及其抓取状态信息。
7、 一种网络爬虫系统获取资源的方法,其特征在于,基于权l所述的系统,该方法包括用户通过用户操作界面进行定制操作并保存定制结果; 才艮据用户的定制结果,启动抓取任务并对设置的任务实施抓取。
8、 根据权利要求7所述的方法,其特征在于,所述定制结果包括以下之一 或任意组合4g深度、抓取任务的创建、抓取资源的分类、抓取资源的范围、 B客户端设置、抓取到的资源如何保存、抓取报告设置。
9、 根据权利要求7所述的方法,其特征在于,所述抓取单元包括第一队列 和第二队列,所述第一队列存放当前深度的URL,所述笫二队列存放下个深度 的URL;所述定制操作中包括抓取深度;所述实施^1^取包括抓取单元从第一队列中提取URL,根据所述的URL对网络资源进行4^; 4体单元根据设置的网络资源的抓取深度,判断是否需要根据第二队列中 的URL对网络资源进行抓取,如果是,则继续* 。
10、 根据权利要求8所述的方法,其特征在于,所述抓取任务为一个或一个 以上;当为一个以上抓取任务时,各个抓取任务并4亍执行,并且相对独立,每 个抓取任务各自维护自身的抓取状态。
11、 一种网络资源抓取装置,其特征在于,包括抓取单元, 所述抓取单元用于根据用户设置的抓取深度,对网络资源进行^ ; 其中,所述^^取单元包括第一队列和第二队列,第一队列用于存^:当前深度的统一资源定位符URL,第二队列用于存放下个深度的URL。
12、 根据权利要求ll所述的网络资源抓取装置,其特征在于,所述第二个 队列中存放的下个深度的URL是在对所述第一队列中的URL中的网络资源进 行抓取过程中获取的。
13、 根据权利要求11或12所述的网络资源抓取装置,其特征在于,所述 抓取单元还包括一列表,用于保存当前 1过程中得到的所有URL及其抓取状 态信息。
全文摘要
本发明提供了一种网络爬虫系统及其获取资源的方法和网络资源抓取装置,本发明网络爬虫系统包括用户定制管理单元、控制单元和抓取单元,用户通过用户定制管理单元提供的用户操作界面进行定制操作并保存定制结果;控制单元和抓取单元根据用户的定制结果,启动抓取任务并对设置的任务实施抓取行为。本发明的网络爬虫系统提供了友好的用户定制界面,而且设置项内容丰富,用户无需进行二次编程开发就能满足其需求,很好地改善了网络爬虫的易用性,使得用户方便、灵活地实现了对网络资源的搜索。
文档编号H04L29/06GK101635718SQ20091009162
公开日2010年1月27日 申请日期2009年8月26日 优先权日2009年8月26日
发明者伟 郑 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1