CN102184227B - 一种面向web服务的通用爬虫引擎系统及其工作方法 - Google Patents
一种面向web服务的通用爬虫引擎系统及其工作方法 Download PDFInfo
- Publication number
- CN102184227B CN102184227B CN 201110120161 CN201110120161A CN102184227B CN 102184227 B CN102184227 B CN 102184227B CN 201110120161 CN201110120161 CN 201110120161 CN 201110120161 A CN201110120161 A CN 201110120161A CN 102184227 B CN102184227 B CN 102184227B
- Authority
- CN
- China
- Prior art keywords
- chain
- url
- word
- web
- destructuring
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种面向WEB服务的通用爬虫引擎系统及其工作方法,该系统设有三种构件:控制中心、储藏库和非结构化WEB服务URL链接及其服务网页的两个特征项词库。作为系统控制中枢的控制中心设有五个功能模块:队列管理器、处理器链、线程池、策略中心和域名管理系统DNS;其中处理器链中的分析保存链增设四个子处理器链,用于处理结构化WEB服务和非结构化WEB服务,对于非结构化WEB服务的URL链接和网页内容分别进行URL链接和网页的分析过滤,并将抓取的原始网页保存于储藏库。本发明系统的可扩展性和伸缩性好,能添加自定义的子处理器链或修改原有子处理器链功能,抓取非结构化服务的准确率高,节省系统资源,能最大量地抓取整个互联网上所有WEB服务。
Description
技术领域
本发明涉及于主题(聚焦)爬虫技术,确切地说,涉及一种面向WEB服务的通用爬虫引擎系统及其识别互联网上的WEB服务的工作方法,属于互联网的搜索引擎技术领域。
背景技术
随着互联网上WEB应用的增多,越来越多的WEB服务被企业发布到互联网上,WEB服务在企业之间及企业内部开发基于构件的松散耦合系统中起着重要的作用。现有的WEB服务从使用规模和数量上主要分为两大类:
(一)以采用服务描述语言WSDL(WEB Services Description Language)描述的服务为代表的结构化WEB服务,这类服务主要使用简单对象访问协议SOAP(Simple Object Access Protocol),并使用可扩展标记语言XML(Extensible Markup Language)传输数据。
(二)以RESTful WEB服务为代表的非结构化WEB服务:RESTful WEB服务遵循表示性状态转移REST(Representational State Transfer)风格,并且,这类服务在整个非结构化WEB服务中占有绝大多数的份额。另一类非结构化WEB服务主要是其他形式的WEB API服务,这类服务的比重仅次于RESTfulWEB服务。
至今为止,ProgrammableWeb是提供最大量的WEB服务注册和查询的门户网站,它提供了门类齐全的WEB服务,可以让用户按服务的类别、提供服务的公司、服务使用的协议/风格、传输数据的格式、服务的注册时间等分类查看服务列表。ProgrammableWeb现在收录的服务有3074个,图1所示的图片摘自http:∥www.programmableweb.com/apis,该图从使用协议的角度显示了不同WEB服务所占的比例。从该统计图可以看出:传统的使用SOAP协议的结构化WEB服务有被以RESTful为代表的非结构化的WEB服务逐步取代的趋势,其主要原因是因为这些非结构化的WEB服务遵循REST的架构设计风格。这类服务在URL链接的设计、协议的选择和消息的传输上都比结构化的WEB服务要简单得多。现在许多著名的WEB站点(如Google,Amazon、Facebook、Flickr等)都提供了容易使用、免费访问它们资源的RESTful WEB服务及APIs。
以RESTful为代表的非结构化WEB服务广泛存在于互联网,查找和搜索这类服务为企业间信息互通和服务集成都有着非常重要的意义。非结构化WEB服务的开发是自治的,没有统一规定的标准或规则,服务文档通常也不是一个类似于WSDL的接口描述文件,而是一个普通的HTML的WEB页面。非结构化WEB服务的这些固有特性,使得现在的通用WEB服务爬虫引擎系统很难识别和抓取互联网上的这类服务。
目前,WEB服务爬虫引擎系统的现有技术方案有下述三种:
(A)基于UDDI注册中心:使用该方式,爬虫引擎可抓取的Web服务的比例很小。比较有代表性的UDDI注册中心在2006年就关闭了,而且,UDDI注册中心对服务的注册者的信息和服务的Qos信息不进行实时考证,爬虫引擎抓取的数据可能大部分都是过时的或不存在的。
(B)通过WEB服务网站:由于提供服务的门户所收录的WEB服务并没有囊括互联网中所有WEB服务,并且这类服务网站对服务注册者提供的服务信息并没有进行实时的验证(包括服务的可用性,QoS等)。爬虫引擎以这类网站作为目标获取的数据可能大部分也是过时的或者不可信的。
(C)使用通用搜索引擎:该方式的弊端也是很明显,因为通用搜索引擎面对的是广大的人群,它们考虑的是网页覆盖面尽可能大和广;然而,对于服务领域的搜索来说,通用搜索引擎的搜索结果往往不如人意。
服务搜索技术的一个目标是如何识别和抓取互联网上所有的WEB服务,这也是当今服务搜索方面的研究热点问题。国外的Seekda和Service Finder是服务搜索方面的先行者。然而这两个项目都仅仅对以WSDL为代表的结构化WEB服务提供了很好的支持。对于非结构化WEB服务的搜索,国内外都还没有相关的研究成果或可实用的技术方案。因此,如何解决该技术问题,就成为业内科技人员关注的焦点课题。
发明内容
有鉴于此,本发明的目的是提供一种面向WEB服务的通用爬虫引擎系统及其识别互联网的非结构化WEB服务的工作方法,本发明系统解决了现有技术存在的缺陷,具有良好的可扩展性和伸缩性,能够添加自定义的子处理器链或修改原有的子处理器链功能,以方便用户定制和自定义扩展系统的功能;而且本发明方法抓取非结构化服务的准确率高,还节省了系统资源。
为了达到上述发明目的,本发明提供了一种面向WEB服务的通用爬虫引擎系统,其特征在于:所述系统设有下述三种构件:
控制中心,为该系统的控制中枢,负责总控和管理整个操作过程,启动整个爬虫抓取工作,并决定整个抓取任务的开始和结束:从队列管理器中获取统一资源定位符URL(Universal Resource Locator)链接或网页地址,将获取的URL链接传递给线程池中的处理线程,处理线程将该URL链接送至处理器链由其各个子处理器链顺序进行相应处理,其中分析保存链能够处理结构化WEB服务和非结构化WEB服务,对于非结构化WEB服务的URL链接和网页内容分别进行URL链接和网页的分析过滤,并将抓取的原始网页保存于储藏库;设有五个功能模块:队列管理器、处理器链、线程池、策略中心和域名管理系统DNS(Domain Name System);处理器链设有顺序串接的下述五个子处理器链:预处理链、获取链、提取链、分析保存链和补充处理链;其中的分析保存链包括:用于处理结构化WEB服务的结构化WEB服务处理单元,用于处理非结构化WEB服务的URL得分处理单元、页面得分处理单元、保存文本内容处理单元和保存原始网页处理单元;
储藏库,用于保存该系统获取的原始网页、系统解析后的纯文本网页和系统产生的日志信息,并设有存储该三类信息的三个数据库:爬虫抓取的原始网页的网页库,系统分析而提取的网页内容的文本库,运行期间产生的各种日志信息的日志库;
特征项词库,包括非结构化WEB服务URL链接的特征项词库及其服务网页的特征项词库,非结构化WEB服务URL链接的特征项词库用于预存该系统的非结构化WEB服务URL链接的特征项信息,在URL链接进入处理器链的URL得分处理单元时构造特征项词库的向量;该特征项词库设有下述三个模块:
训练集合模块,用于存储从特定的提供非结构化WEB服务的网站随机下载足够数量的非结构化WEB服务网页构成的非结构化WEB服务的训练集合;
处理模块,用于对该训练集合模块中的文件总数进行统计,并从中取出每个文件进行下述处理:从文件中提取所有以http或https打头的链接和链接文字并保存于临时文件,再对保存链接和链接文字的临时文件进行分析:先剔除停用词,然后统计不同单词的出现频率,将出现频率大于设定阈值的单词作为非结构化WEB服务链接的特征项词库的备选项;
URL链接的特征项词模块,用于存储所选择的特征词及其相应权值;所述特征词是在处理完所有文件后,从处理模块的备选项中筛选的最能代表非结构化WEB服务的各个单词,再根据这些单词与非结构化WEB服务关联的紧密程度分别给其设置不同的权值;
非结构化WEB服务的服务网页的特征项词库用于预存该系统的非结构化WEB服务网页的特征项信息,在URL链接进入处理器链的页面得分处理单元时构造特征项词库的向量;该服务网页的特征项词库设有下述模块:
训练集合模块,用于存储从特定的提供非结构化WEB服务的网站随机下载足够数量的非结构化WEB服务网页构成的非结构化WEB服务的训练集合;
处理模块,用于对该训练集合模块中的文件总数进行统计,并从中取出所有的HTML网页逐一进行下述处理:从每个原始网页中获取其主要内容和将其保存于纯文本文件;再对该纯文本文件逐一进行下述处理:对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词的出现频率,并生成与该纯文本文件对应的统计文件;然后用数据容器保存统计的单词及其出现频率、出现该单词的文件总数后,对生成的每个统计文件按照下述方法进行循环处理:读取统计文件中的每一行,解析其中的单词及其出现频率,如果该单词未存在于数据容器,则向数据容器中写入该单词及其出现频率,并记录出现该单词的文件总数为1;否则,先读取数据容器中该单词的出现频率及出现该单词的文件总数,再累加其出现频率次数和对出现该单词的文件总数加1;如此处理完所有统计文件,就建立了单词的倒排索引,再计算和判断各单词的权值;
服务网页的特征项词库模块,用于存储非结构化WEB服务网页的特征项单词及其权值;所述特征项单词的权值大于设定阈值,而权值不大于设定阈值的单词则被丢弃。
为了达到上述发明目的,本发明还提供了一种采用本发明面向WEB服务的通用爬虫引擎系统识别非结构化WEB服务的工作方法,其特征在于:该方法至少包括下列操作步骤:
(1)系统启动时,自动加载种子源文件于系统内存,解析种子URL链接,并将种子URL链接转交给队列管理器进行处理;所述种子源文件的来源有三处:选自服务门户、服务目录和知名网站的网址;
(2)队列管理器拿到种子URL链接后,将其存储于种子队列中;
(3)控制中心从队列管理器中获得一个准备处理的URL链接,传递给线程池中一个空闲的线程进行处理;
(4)该空闲线程得到该URL链接后,转交处理器链,由处理器链中的各个子处理器链依序对该URL链接进行处理:预处理器链先处理该URL链接,获取链根据该URL链接下载该链接对应的原始网页,提取链获取该URL链接原始网页中的新的子URL链接,分析保存链对获取的原始网页、新的子URL链接及其网页内容进行分析,补充处理链将获取的新的子URL链接提交给队列管理器;如果某个子处理链在处理过程中,URL链接不满足该子处理器链的条件,就被丢弃,且后续子处理器链也不再对其处理;
(5)循环执行步骤(3)~(4)的操作,直到该系统满足设定的停止条件。
本发明面向WEB服务的通用爬虫引擎系统的优点是:具有良好的可扩展性和伸缩性,该系统的控制中心的功能模块—处理器链采用插件可插拔机制:根据系统自身功能的变化需求,能够添加自定义的子处理器链或修改原有的子处理器链功能,以方便用户定制和自定义扩展系统的功能。这个特添也集中体现了该系统的可扩展性和可定制性。由于本发明爬虫引擎系统的目标是整个互联网(包括服务的目录和门户),保证了能够最大量地抓取互联网上所有的WEB服务,这是目前已有的各种服务爬虫引擎系统所不具有的功能。另外,本发明还提供了非结构化WEB服务的识别方法,大大提高抓取非结构化服务的准确率,并且节省了系统资源。
附图说明
图1是不同WEB服务所占的比例示意图。
图2是本发明面向WEB服务的通用爬虫引擎系统的结构组成示意图。
图3是本发明面向WEB服务的通用爬虫引擎系统识别互联网WEB服务的工作方法步骤流程图。
图4是本发明采用URL链接过滤算法对单个链接进行过滤的操作流程图。
图5是本发明采用的页面过滤算法的操作流程图。
图6是本发明构建非结构化WEB服务链接的特征项词库的操作流程图。
图7是本发明构建非结构化WEB服务网页的特征项词库的操作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。
参见图2,先介绍本发明面向WEB服务的通用爬虫引擎系统的结构组成的三个构件:控制中心、储藏库和特征项词库。它们的结构组成与功效介绍如下:
(一)控制中心,作为该系统的控制中枢,负责该系统整个操作过程的执行和管理,启动整个抓取工作的起点,并决定整个抓取任务的开始和结束:从队列管理器中获取URL链接、即统一资源定位符或网页地址,将获取的URL链接传递给线程池中的处理线程,处理线程将该URL链接送至处理器链由其各个子处理器链顺序进行相应处理。其中分析保存链能够处理结构化WEB服务和非结构化WEB服务,对于非结构化WEB服务的URL链接和网页内容分别进行URL和网页的分析过滤,并将抓取的原始网页保存于储藏库。控制中心设有五个功能模块:队列管理器、处理器链、线程池、策略中心和域名管理系统DNS,分别具有下述功能:
队列管理器,负责依据策略中心配置的不同策略,将系统新抽取的URL链接根据该URL链接自身的优先级放入不同的优先级队列,并管理每个队列及队列中每个URL链接的生命周期;这些队列根据系统预定义的优先级分为高、中、低三种和一个存放种子URL链接或需要提前预处理的最高优先级的URL链接种子队列;队列管理器还对URL链接执行去重处理,即辨别重复URL链接。
处理器链,为五个完成不同功能的子处理器链(预处理链、获取链、提取链、分析保存链和补充链)的集合,这些子处理器链按照预定顺序串接位于该处理器链中,每个URL链接根据各个子处理器链的规则要求通过一个、多个、或全部的子处理器链的处理,该处理器链根据系统自身功能的变化需求,能够添加自定义的子处理器链或修改原有的子处理器链功能,这个特性集中体现了本发明系统的可扩展性和可定制性。下面具体介绍其中五个子处理器链的功能特性:
预处理链用于根据域名系统DNS和系统预设的下载范围的控制信息,判断当前URI链接是否需要预处理。获取链负责使用网络套接字Socket链接从远程服务器获取数据,下载URL链接对应的网页源文件。提取链负责从网页源文件中抽取新的URL链接。分析保存链负责将网页源文件进行相应处理后,保存于系统硬盘的储藏库;为体现该系统为面向WEB服务的通用爬虫引擎系统,除了原有的保存原始网页处理器以外,增设下述四个处理器:为处理结构化WEB服务的结构化WEB服务处理器,为处理非结构化WEB服务的URL得分处理器、页面得分处理器和保存文本内容处理器。下面介绍这四个子处理器的功能:
结构化WEB服务处理器,使用WSDL解析器解析从获取链得到的原始网页内容,判断该网页为WSDL格式的结构化WEB服务时,交由该分析保存链中的保存原始网页内容处理器进行处理;否则,交由URL得分处理器进行处理。
URL得分处理器,使用URL过滤算法计算从提取链中得到的URL链接的相似度,让相似度大于设定阈值的URL链接通过该URL得分处理器,由页面得分处理器进行处理。
页面得分处理器,用于解析原始网页的纯文本内容,并应用网页过滤算法计算网页的相似度,让相似度大于设定阈值的网页通过该页面得分处理器,由保存文本内容处理器进行处理。
保存文本内容处理器,用于将页面得分处理器处理的URL链接对应网页解析的纯文本内容保存于系统的文本库。
最后一个子处理链是补充处理链,用于将新抽取的URL链接提交给队列管理器进行处理。
线程池,负责管理多个线程的生命周期:包括新建空闲线程、销毁空闲进程、启动新线程与停止线程;为提高系统的并发性和爬虫效率,该线程池设有多个线程,其中每个线程将URL链接顺序送至处理器链中的各处理器进行处理。
策略中心用于配置和调整队列管理器的管理策略,该系统默认的队列管理策略是优先级策略;通过策略中心,队列管理器能够根据域名、或优先级、或同时兼顾优先级和域名对URL链接分类,策略中心还能动态调整队列管理器的策略,并反馈给控制中心,以便控制中心采用不同策略实时控制URL的访问先后顺序。策略中心还给线程池实时反馈系统的CPU利用率与内存使用率等的资源消耗信息,以使线程池控制当前的活动线程的数量和线程的状态,实现系统资源的实时最优化。
域名管理系统DNS负责将目标服务所在设备的域名转换为网络能识别的IP地址,并保存解析结果,避免系统每次都要解析域名,加快系统的下载速度。
(2)储藏库用于保存该系统获取的原始网页、系统解析后的纯文本网页和系统产生的日志信息,故设有存储该三类信息的三个数据库:爬虫抓取的原始网页的网页库,系统分析而提取的网页内容的文本库,运行期间产生的各种日志信息的日志库。
(3)特征项词库有两个:非结构化WEB服务URL链接的特征项词库及其服务网页的特征项词库,前者用于预存该系统的非结构化WEB服务URL链接的特征项信息,在URL链接进入处理器链的URL得分处理器时构造特征项词库的向量。后者用于预存该系统的非结构化WEB服务网页的特征项信息,在URL链接进入处理器链的页面得分处理器时构造特征项词库的向量。这两个特征项词库都是预先分别使用URL链接的特征项构造方法和服务网页的特征项构造方法提前构建的。
下面介绍本发明面向WEB服务的通用爬虫引擎系统的识别互联网上的非结构化WEB服务的工作方法,该方法包括下列操作步骤:
步骤0,初始化准备:寻找非结构化WEB服务网页,分别构建非结构化WEB服务链接的特征项词库和非结构化WEB服务网页的特征项词库,提高爬虫获取内容的准确率和系统资源利用率。
步骤1,系统启动时,自动加载种子源文件于系统内存,解析种子URL链接,并将种子URL链接转交给队列管理器进行处理;该种子源文件的来源有三处:选自服务门户或服务目录,以及知名网站(例如Google、Souhu等)的网址。
步骤2,队列管理器拿到种子URL链接后,将其存储于种子队列中。
步骤3,控制中心从队列管理器中获得一个准备处理的URL链接,传递给线程池中一个空闲的线程进行处理(参见图3,从该步骤开始描述操作流程)。
步骤4,该空闲线程得到该URL链接后,转交处理器链,由处理器链中的五个子处理器链依序对该URL链接进行处理:预处理器链先处理该URL链接,获取链根据该URL链接下载该链接对应的原始网页,提取链获取该URL链接原始网页中的全部子URL链接,分析保存链对获取的这些子URL链接及网页内容进行分析,补充处理链将获取的新的子URL链接提交给队列管理器。
如果某个子处理链在处理过程中,当前的URL链接不满足该子处理器链的条件,就被丢弃,且后续子处理器链也不再对其处理;
步骤5,循环执行步骤3~步骤4的操作,直到该系统满足设定的停止条件。
下面重点介绍上述步骤4中两个得分处理器的操作内容:
(A)URL得分处理器从提取链中获取所有的外向子URL链接,循环执行下述操作内容:
(4A)URL得分处理器提取其中一个子URL链接后,判断已经处理的子URL链接总数是否还大于0,若是,则执行后续操作;否则,进入页面处理得分器的操作步骤。
(4B)使用URL链接过滤算法计算该子URL链接的相似度,如果计算结果的相似度小于设定阈值,则丢弃该子URL链接,返回步骤(4A);否则,赋予该子URL链接一个相应的得分,并保存该子URL链接,再将子URL链接总数减1后,返回步骤(4A);直至URL链接总数为0,流程结束。
参见图4,介绍步骤(4B)中,URL得分器使用的URL链接过滤算法的下列操作内容:
(4B1)从URL链接特征项词库文本中循环读取每个特征词及其出现频率,用数据容器保存读取的每个特征词及其权值;直至读到该文件末尾,以构造URL链接的目标特征向量。
(4B2)对准备分析的URL链接及其链接文字进行分词处理,并提取和排除包括不可识别的编码、数字、非字符的符号的噪音文字。
(4B3)对经过步骤(4B2)处理的不同单词统计其出现频率。
(4B4)用数据容器循环读取经过步骤(4B3)统计的每个单词,并将其和已经构造的目标特征向量中的单词进行比较,如果该单词出现在目标特征向量里,则该单词被赋予与其特征向量相同的权值;否则,被赋值为0;直到所有单词都进行比较后,得到了比较向量,结束该循环操作。
(4B5)用向量空间模型计算目标特征向量与比较向量两者的相似度。
(B)再介绍步骤4中的页面处理得分器对经过URL得分处理器处理后的信息执行的下述操作内容:
(4a)页面得分处理器使用页面过滤算法计算所提取的网页相似度。
(4b)如果计算的网页相似度小于设定阈值,则丢弃该网页,不再进行后续处理;否则,该网页被赋予一个相应的得分,并送入保存文本内容处理器进行后续处理。
参见图5,介绍步骤(4a)中,页面得分处理器对提取的网页执行的页面过滤算法具体操作内容:
(4a1)从非结构化WEB服务网页的特征项词库对应的文件中循环读取每个特征词及其出现频率,用数据容器保存被读取的每个特征词及其权值;直至读到文件结束,以构造非结构化WEB服务网页的的目标特征向量。
(4a2)使用能够解析HTML文档的解析器对准备分析的网页进行解析,获取该网页的主要内容(例如HEAD标签、METE标签、TITLE标签对应的文相关字,以及BODY标签的主要内容),保存生成该网页的纯文本文件。
(4a3)对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词及其出现频率,并保存到临时文件里。
(4a4)读取该临时文件,用数据容器记录临时文件中的每个单词及其出现频率,以构建比较向量。
(4a5)用向量空间模型计算目标特征向量与比较向量两者的相似度。
从上面介绍中的分析保存链中的URL得分处理器和页面得分处理器分别使用的URL链接过滤算法和页面过滤算法的处理流程可以获悉:这两种过滤算法的前提是必须保证两个特征项词库的存在,因此,必须事先完成构建本发明系统结构中的两个特征项词库,以供这两个得分处理器的调用。
众所周知,每个HTML网页上都有大量的链接,许多链接是一些垃圾链接(即其和目标链接没有关系),如果不对链接进行简单的过滤,就可能导致爬虫引擎在爬取与目标无关的网站上执行多余的深层爬取,这样就影响爬虫获取内容的准确率和浪费系统资源。所以,要判断一个链接是否与非结构化WEB服务相关,首先要找出提供非结构化WEB服务链接的共性,因此必须构造一个非结构化WEB服务链接的特征项词库。
因此,参见图6,介绍本发明方法中的初始化准备步骤0:构建非结构化WEB服务的链接特征项词库构建的具体操作内容:
(01)从特定的提供非结构WEB服务的网站随机下载足够数量的非结构化WEB服务的网页,作为该非结构化WEB服务的训练集合。
(02)统计训练集合中的文件总数,从中取出每个文件并进行下述处理;
使用能解析HTML文件的解析器提取该文件中的所有以http或https打头的链接和链接文字,并将提取结果保存于临时文件。
对保存链接和链接文字的临时文件进行分析:先剔除停用词,再统计不同单词的出现频率,并将出现频率大于设定阈值(比如10)的单词作为非结构化WEB服务链接的特征项词库的备选项;直至所有文件都处理完毕。
(03)从该特征项词库的备选项中筛选最能代表非结构化WEB服务的各个单词,再根据这些单词与非结构化WEB服务关联的紧密程度,给其设置不同的权值,将这些特征词及其相应权值保存于URL链接特征项词库文本。
再参见图7,介绍本发明方法中的另一项初始化准备步骤0:构建非结构化WEB服务网页的特征项词库的具体操作内容:
(0a)以步骤(01)中的URL链接特征项的训练集合作为构建非结构化WEB服务网页的特征项的训练集合。
(0b)统计该训练集合中的文件总数,从该训练集合中取出所有的HTML网页并逐一进行下述处理;使用能解析HTML文件的解析器从原始网页中获取每个网页的主要内容,并将该网页的主要内容保存于纯文本文件。
(0c)对生成的纯文本文件逐一进行下述处理;对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词的出现频率,并生成与该纯文本文件对应的统计文件。
(0d)用数据容器保存统计的单词及其出现频率、出现该单词的文件总数后,对生成的每个统计文件按照下述方法进行循环处理:
读取统计文件中的每一行,解析其中的单词及其出现频率,如果该单词未存在于数据容器,则向数据容器中写入该单词及其出现频率,并记录出现该单词的文件总数为1;否则,先读取数据容器中该单词的出现频率及出现该单词的文件总数,再累加其出现频率次数和对出现该单词文件总数加1。
(0e)处理完所有统计文件,就建立了单词的倒排索引,再计算每个单词的权值;如果其权值大于设定阈值,就认为该单词为一个特征项,将该单词及其权值保存于非结构化WEB服务网页的特征项词库对应文件;否则,丢弃之。
以上所述仅为本发明较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (11)
1.一种面向WEB服务的通用爬虫引擎系统,其特征在于:所述系统设有下述三种构件:
控制中心,为该系统的控制中枢,负责总控和管理整个操作过程,启动整个爬虫抓取工作,并决定整个抓取任务的开始和结束:从队列管理器中获取统一资源定位符URL链接或网页地址,将获取的URL链接传递给线程池中的处理线程,处理线程将该URL链接送至处理器链由其各个子处理器链顺序进行相应处理,其中分析保存链能够处理结构化WEB服务和非结构化WEB服务,对于非结构化WEB服务的URL链接和网页内容分别进行URL链接和网页的分析过滤,并将抓取的原始网页保存于储藏库;设有五个功能模块:队列管理器、处理器链、线程池、策略中心和域名管理系统DNS;处理器链设有顺序串接的下述五个子处理器链:预处理链、获取链、提取链、分析保存链和补充处理链;其中的分析保存链包括:用于处理结构化WEB服务的结构化WEB服务处理单元,用于处理非结构化WEB服务的URL得分处理单元、页面得分处理单元、保存文本内容处理单元和保存原始网页处理单元;
储藏库,用于保存该系统获取的原始网页、系统解析后的纯文本网页和系统产生的日志信息,并设有存储该三类信息的三个数据库:爬虫抓取的原始网页的网页库,系统分析而提取的网页内容的文本库,运行期间产生的各种日志信息的日志库;
特征项词库,包括非结构化WEB服务URL链接的特征项词库及其服务网页的特征项词库,非结构化WEB服务URL链接的特征项词库用于预存该系统的非结构化WEB服务URL链接的特征项信息,在URL链接进入处理器链的URL得分处理单元时构造特征项词库的向量;该特征项词库设有下述三个模块:
训练集合模块,用于存储从特定的提供非结构化WEB服务的网站随机下载足够数量的非结构化WEB服务网页构成的非结构化WEB服务的训练集合;
处理模块,用于对该训练集合模块中的文件总数进行统计,并从中取出每个文件进行下述处理:从文件中提取所有以http或https打头的链接和链接文字并保存于临时文件,再对保存链接和链接文字的临时文件进行分析:先剔除停用词,然后统计不同单词的出现频率,将出现频率大于设定阈值的单词作为非结构化WEB服务链接的特征项词库的备选项;
URL链接的特征项词模块,用于存储所选择的特征词及其相应权值;所述特征词是在处理完所有文件后,从处理模块的备选项中筛选的最能代表非结构化WEB服务的各个单词,再根据这些单词与非结构化WEB服务关联的紧密程度分别给其设置不同的权值;
非结构化WEB服务的服务网页的特征项词库用于预存该系统的非结构化WEB服务网页的特征项信息,在URL链接进入处理器链的页面得分处理单元时构造特征项词库的向量;该服务网页的特征项词库设有下述模块:
训练集合模块,用于存储从特定的提供非结构化WEB服务的网站随机下载足够数量的非结构化WEB服务网页构成的非结构化WEB服务的训练集合;
处理模块,用于对该训练集合模块中的文件总数进行统计,并从中取出所有的HTML网页逐一进行下述处理:从每个原始网页中获取其主要内容和将其保存于纯文本文件;再对该纯文本文件逐一进行下述处理:对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词的出现频率,并生成与该纯文本文件对应的统计文件;然后用数据容器保存统计的单词及其出现频率、出现该单词的文件总数后,对生成的每个统计文件按照下述方法进行循环处理:读取统计文件中的每一行,解析其中的单词及其出现频率,如果该单词未存在于数据容器,则向数据容器中写入该单词及其出现频率,并记录出现该单词的文件总数为1;否则,先读取数据容器中该单词的出现频率及出现该单词的文件总数,再累加其出现频率次数和对出现该单词的文件总数加1;如此处理完所有统计文件,就建立了单词的倒排索引,再计算和判断各单词的权值;
服务网页的特征项词库模块,用于存储非结构化WEB服务网页的特征项单词及其权值;所述特征项单词的权值大于设定阈值,而权值不大于设定阈值的单词则被丢弃。
2.根据权利要求1所述的系统,其特征在于:所述系统的控制中心的五个功能模块分别具有下述功能:
队列管理器,负责依据策略中心配置的不同策略,将系统新抽取的URL链接根据该URL链接自身的优先级放入不同的优先级队列,并管理每个队列及队列中每个URL链接的生命周期;这些队列根据系统预定义的优先级分为高、中、低三种和一个存放种子URL链接或需要提前预处理的最高优先级的URL链接种子队列;队列管理器还对URL链接执行去重处理,即辨别重复URL链接;
处理器链,为一个或多个完成不同功能的子处理器链的集合,这些子处理器链按照预定顺序串接位于该处理器链中,每个URL链接根据各个子处理器链的规则要求通过一个、多个、或全部的子处理器链的处理,该处理器链根据系统自身功能的变化需求,能够添加自定义的子处理器链或修改原有的子处理器链功能,这个特性集中体现了所述系统的可扩展性和可定制性;
线程池,负责管理多个线程的生命周期:包括新建空闲线程、销毁空闲进程、启动新线程与停止线程;为提高系统的并发性和爬虫效率,该线程池设有多个线程,其中每个线程将URL链接顺序送至处理器链中的各处理单元进行处理;
策略中心,用于配置和调整队列管理器的管理策略,该系统默认的队列管理策略是优先级策略;通过策略中心,队列管理器能够根据域名、或优先级、或同时兼顾优先级和域名对URL链接分类,策略中心还能动态调整队列管理器的策略,并反馈给控制中心,以便控制中心采用不同的策略实时控制URL的访问先后顺序;策略中心还给线程池实时反馈系统的CPU利用率与内存使用率等的资源消耗信息,以使线程池控制当前的活动线程的数量和线程的状态,实现系统资源的实时最优化;
域名管理系统DNS,负责将目标服务所在设备的域名转换为网络能识别的IP地址,并保存解析结果,避免系统每次都要解析域名,加快系统的下载速度。
3.根据权利要求2所述的系统,其特征在于:所述处理器链设有下述顺序串接的五个子处理器链:
预处理链,用于根据域名系统DNS和系统预设的下载范围的控制信息,判断当前URI链接是否需要预处理;
获取链,负责使用网络套接字Socket链接从远程服务器获取数据,下载URL链接对应的网页源文件;
提取链,用于从网页源文件中抽取新的URL链接;
分析保存链,负责将网页源文件进行相应处理后,保存于系统硬盘的储藏库;为体现该系统为面向WEB服务的通用爬虫引擎系统,除了原有的保存原始网页处理单元以外,增设下述四个处理单元:
结构化WEB服务处理单元,使用WSDL解析器解析从获取链得到的原始网页内容,判断该网页为WSDL格式的结构化WEB服务时,交由该分析保存链中的保存原始网页内容处理单元进行处理;否则,交由URL得分处理单元进行处理;
URL得分处理单元,使用URL过滤算法计算从提取链中得到的URL链接的相似度,让相似度大于设定阈值的URL链接通过该URL得分处理单元,由页面得分处理单元进行处理;
页面得分处理单元,用于解析原始网页的纯文本内容,并应用网页过滤算法计算网页的相似度,让相似度大于设定阈值的网页通过该页面得分处理单元,由保存文本内容处理单元进行处理;
保存文本内容处理单元,用于将页面得分处理单元处理的URL链接对应网页解析的纯文本内容保存于系统的文本库;
补充处理链,用于将新抽取的URL链接提交给队列管理器进行处理。
4.一种采用权利要求1所述的面向WEB服务的通用爬虫引擎系统识别WEB服务的工作方法,其特征在于:所述方法至少包括下列操作步骤:
(1)系统启动时,自动加载种子源文件于系统内存,解析种子URL链接,并将种子URL链接转交给队列管理器进行处理;所述种子源文件的来源有三处:选自服务门户、服务目录和知名网站的网址;
(2)队列管理器拿到种子URL链接后,将其存储于种子队列中;
(3)控制中心从队列管理器中获得一个准备处理的URL链接,传递给线程池中一个空闲的线程进行处理;
(4)该空闲的线程得到该URL链接后,转交处理器链,由处理器链中的各个子处理器链依序对该URL链接进行处理:预处理器链先处理该URL链接,获取链根据该URL链接下载该链接对应的原始网页,提取链获取该URL链接原始网页中的新的子URL链接,分析保存链对获取的原始网页、新的子URL链接及其网页内容进行分析,补充处理链将获取的新的子URL链接提交给队列管理器;如果某个子处理链在处理过程中,URL链接不满足该子处理器链的条件,就被丢弃,且后续子处理器链也不再对其处理;
(5)循环执行步骤(3)~(4)的操作,直到该系统满足设定的停止条件。
5.根据权利要求4所述的方法,其特征在于:所述方法还包括预先准备的初始化操作内容:寻找非结构化WEB服务网页,分别构建非结构化WEB服务链接的特征项词库和非结构化WEB服务网页的特征项词库,提高爬虫获取内容的准确率和系统资源利用率。
6.根据权利要求5所述的方法,其特征在于:所述构建非结构化WEB服务的链接特征项词库包括下列操作内容:
(A1)从特定的提供非结构化WEB服务的网站随机下载足够数量的非结构化WEB服务的网页,作为该非结构化WEB服务的训练集合;
(A2)统计训练集合中的文件总数,从中取出每个文件并进行下述处理:
使用能解析HTML文件的解析器提取该文件中的所有以http或https打头的链接和链接文字,并将提取结果保存于临时文件;
对保存链接和链接文字的临时文件进行分析:先剔除停用词,再统计不同单词的出现频率,并将出现频率大于设定阈值的单词作为非结构化WEB服务链接的特征项词库的备选项;直至所有文件都处理完毕;
(A3)从该特征项词库的备选项中筛选最能代表非结构化WEB服务的各个单词,再根据这些单词与非结构化WEB服务关联的紧密程度,给其设置不同的权值,将这些特征词及其相应权值保存于URL链接特征项词库文本。
7.根据权利要求6所述的方法,其特征在于:所述构建非结构化WEB服务网页的特征项词库包括下列操作内容:
(B1)以步骤(A1)中的URL链接特征项的训练集合作为构建非结构化WEB服务网页的特征项的训练集合;
(B2)统计该训练集合中的文件总数,从该训练集合中取出所有的HTML网页并逐一进行下述处理:使用能解析HTML文件的解析器从原始网页中获取每个网页的主要内容,并将该网页的主要内容保存于纯文本文件;
(B3)对生成的纯文本文件逐一进行下述处理:对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词的出现频率,并生成与该纯文本文件对应的统计文件;
(B4)用数据容器保存统计的单词及其出现频率、出现该单词的文件总数后,对生成的每个统计文件按照下述方法进行循环处理:
读取统计文件中的每一行,解析其中的单词及其出现频率,如果该单词未存在于数据容器,则向数据容器中写入该单词及其出现频率,并记录出现该单词的文件总数为1;否则,先读取数据容器中该单词的出现频率及出现该单词的文件总数,再累加其出现频率次数和对出现该单词文件总数加1;
(B5)处理完所有统计文件,就建立了单词的倒排索引,再计算每个单词的权值;如果其权值大于设定阈值,就认为该单词为一个特征项,将该单词及其权值保存于非结构化WEB服务网页的特征项词库对应的文件;否则,丢弃该单词。
8.根据权利要求4所述的方法,其特征在于:所述步骤(4)中,分析保存链中的URL得分处理单元从提取链中获取所有的外向子URL链接,循环执行下述操作内容:
(4A)URL得分处理单元提取其中一个子URL链接,使用URL链接过滤算法计算该子URL链接的相似度;
(4B)如果计算结果的相似度小于设定阈值,则丢弃该子URL链接,返回步骤(4A);否则,赋予该子URL链接一个相应的得分,并保存该子URL链接,再将子URL链接总数减1后,返回步骤(4A);直至URL链接总数为0,流程结束。
9.根据权利要求8所述的方法,其特征在于:所述步骤(4A)中,对每个URL链接使用的URL链接过滤算法包括下列操作内容:
(4A1)从URL链接特征项词库文本中循环读取每个特征词及其出现频率,用数据容器保存读取的每个特征词及其权值;直至读到该URL链接特征项词库文本末尾,以构造URL链接的目标特征向量;
(4A2)对准备分析的URL链接及其链接文字进行分词处理,并提取和排除包括不可识别的编码、数字、非字符的符号的噪音文字;
(4A3)对经过步骤(4A2)处理的不同单词统计其出现频率;
(4A4)用数据容器循环读取经过步骤(4A3)统计的每个单词,并将其和已经构造的目标特征向量中的单词进行比较,如果该单词出现在目标特征向量里,则该单词被赋予与其特征向量相同的权值;否则,被赋值为0;直到所有单词都进行比较后,得到了比较向量,结束该循环操作;
(4A5)用向量空间模型计算目标特征向量与比较向量两者的相似度。
10.根据权利要求4所述的方法,其特征在于:所述步骤(4)中,分析保存链中的页面得分处理单元执行下述操作内容:
(4a)页面得分处理单元使用页面过滤算法计算所提取的网页相似度;
(4b)如果计算的网页相似度小于设定阈值,则丢弃该网页,不再进行后续处理;否则,根据计算的相似度大小赋予该网页一个相应的得分,并送入保存文本内容处理单元进行后续处理。
11.根据权利要求10所述的方法,其特征在于:所述步骤(4a)中,页面得分处理单元对每个网页进行的页面过滤算法包括下列操作内容:
(4a1)从非结构化WEB服务网页的特征项词库对应的文件中循环读取每个特征词及其出现频率,用数据容器保存被读取的每个特征词及其权值;直至读到文件结束,以构造非结构化WEB服务网页的的目标特征向量;
(4a2)使用能够解析HTML文档的解析器对准备分析的网页进行解析,获取该网页的主要内容,保存生成该网页的纯文本文件;
(4a3)对生成的纯文本文件进行分词处理,剔除停用词,统计不同单词及其出现频率,并保存到临时文件里;
(4a4)读取该临时文件,用数据容器记录临时文件中的每个单词及其出现频率,以构建比较向量;
(4a5)用向量空间模型计算目标特征向量与比较向量两者的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110120161 CN102184227B (zh) | 2011-05-10 | 2011-05-10 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110120161 CN102184227B (zh) | 2011-05-10 | 2011-05-10 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184227A CN102184227A (zh) | 2011-09-14 |
CN102184227B true CN102184227B (zh) | 2013-05-08 |
Family
ID=44570404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110120161 Expired - Fee Related CN102184227B (zh) | 2011-05-10 | 2011-05-10 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184227B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133217A (zh) * | 2017-05-26 | 2017-09-05 | 北京惠商之星网络科技有限公司 | 目标主题智能抓取方法、系统及计算机可读存储介质 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103091708B (zh) * | 2011-10-28 | 2015-10-07 | 中国石油化工股份有限公司 | 一种三维地震构造曲率性能优化方法 |
CN102571780A (zh) * | 2011-12-28 | 2012-07-11 | 北京星网锐捷网络技术有限公司 | 一种访问网络资源的控制方法、设备与系统 |
CN103389983B (zh) * | 2012-05-08 | 2016-12-14 | 阿里巴巴集团控股有限公司 | 一种用于网络爬虫系统的网页内容抓取方法及装置 |
CN102722526B (zh) * | 2012-05-16 | 2014-04-30 | 成都信息工程学院 | 基于词性分类统计的重复网页和近似网页的识别方法 |
CN103581349B (zh) * | 2012-07-24 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 一种域名解析方法及装置 |
CN103020129B (zh) * | 2012-11-20 | 2015-11-18 | 中兴通讯股份有限公司 | 一种文本内容提取方法和装置 |
CN103150662B (zh) * | 2013-02-07 | 2016-07-06 | 珠海市君天电子科技有限公司 | 一种鉴定淘宝网虚假商品广告的方法 |
CN103092999B (zh) * | 2013-02-22 | 2016-06-29 | 人民搜索网络股份公司 | 一种网页抓取周期调整方法和装置 |
CN103559219B (zh) * | 2013-10-18 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 分布式网络爬虫抓取任务调度方法、调度端设备及抓取节点 |
CN104536972B (zh) * | 2014-12-03 | 2018-08-14 | 北京邮电大学 | 基于cdn的网页内容感知系统及方法 |
CN104462431A (zh) * | 2014-12-16 | 2015-03-25 | 浪潮软件集团有限公司 | 一种爬取网页招聘信息的方法 |
CN105868258A (zh) * | 2015-12-28 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 爬虫系统 |
CN106599094B (zh) * | 2016-11-24 | 2020-05-22 | 百度在线网络技术(北京)有限公司 | 网络内容异步抓取系统和方法 |
CN108268498B (zh) * | 2016-12-30 | 2021-06-22 | 北京国双科技有限公司 | 批量爬虫任务的处理方法和装置 |
CN108536691A (zh) * | 2017-03-01 | 2018-09-14 | 中兴通讯股份有限公司 | 网页爬取方法和装置 |
CN107844527A (zh) * | 2017-10-13 | 2018-03-27 | 平安科技(深圳)有限公司 | 网页地址去重方法、电子设备及计算机可读存储介质 |
CN109150984B (zh) * | 2018-07-27 | 2021-11-02 | 平安科技(深圳)有限公司 | 获取数据资源的方法和装置 |
CN109446441B (zh) * | 2018-09-26 | 2020-11-03 | 北京邮电大学 | 一种通用的网络社区可信分布式采集存储系统 |
CN109471966B (zh) * | 2018-10-30 | 2022-07-15 | 中译语通科技股份有限公司 | 一种自动获取目标数据源的方法及系统 |
WO2021182657A1 (ko) * | 2020-03-10 | 2021-09-16 | (주)해나소프트 | 액션 디자인 임의 설정을 통한 웹 데이터 선택적 임포팅 시스템 |
CN112836151A (zh) * | 2021-03-30 | 2021-05-25 | 中国工商银行股份有限公司 | 页面操作重放方法、装置、客户端、设备及存储介质 |
CN113065055B (zh) * | 2021-04-21 | 2024-04-02 | 深圳赛安特技术服务有限公司 | 新闻资讯抓取方法、装置、电子设备及存储介质 |
CN113656673A (zh) * | 2021-08-23 | 2021-11-16 | 刘文平 | 面向广告投放的主从分布内容爬取机器人 |
CN118379750B (zh) * | 2024-06-25 | 2024-08-30 | 山东浪潮科学研究院有限公司 | 文档向量化并行加速方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963863B1 (en) * | 1999-09-28 | 2005-11-08 | Thomas Bannon | Network query and matching system and method |
CN101404666A (zh) * | 2008-10-06 | 2009-04-08 | 赵洪宇 | 一种基于Web页无限层采集方法 |
CN101727485A (zh) * | 2009-12-10 | 2010-06-09 | 湖南科技大学 | 一种基于聚焦搜索的wsdl搜集方法 |
-
2011
- 2011-05-10 CN CN 201110120161 patent/CN102184227B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963863B1 (en) * | 1999-09-28 | 2005-11-08 | Thomas Bannon | Network query and matching system and method |
CN101404666A (zh) * | 2008-10-06 | 2009-04-08 | 赵洪宇 | 一种基于Web页无限层采集方法 |
CN101727485A (zh) * | 2009-12-10 | 2010-06-09 | 湖南科技大学 | 一种基于聚焦搜索的wsdl搜集方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133217A (zh) * | 2017-05-26 | 2017-09-05 | 北京惠商之星网络科技有限公司 | 目标主题智能抓取方法、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102184227A (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184227B (zh) | 一种面向web服务的通用爬虫引擎系统及其工作方法 | |
US20220035600A1 (en) | API Specification Generation | |
US10250526B2 (en) | Method and apparatus for increasing subresource loading speed | |
CN102857493B (zh) | 内容过滤方法和装置 | |
US20150007199A1 (en) | Method and system for extending application programming interfaces | |
CN105608134A (zh) | 一种基于多线程的网络爬虫系统及其网页爬取方法 | |
CN103891247B (zh) | 用于基于域名系统的设备和目标发现的方法和系统 | |
CN102436513A (zh) | 分布式检索方法和系统 | |
US20150019624A1 (en) | Techniques to manage state information for a web service | |
CN109600385B (zh) | 一种访问控制方法及装置 | |
CN105404693B (zh) | 一种基于需求语义的服务聚类方法 | |
Elshater et al. | godiscovery: Web service discovery made efficient | |
CN102946320A (zh) | 一种分布式用户行为日志预测网络监管方法及系统 | |
CN106033428B (zh) | 统一资源定位符的选择方法和统一资源定位符的选择装置 | |
CN106796607A (zh) | 用于基于模型的搜索及网络数据检索的系统和方法 | |
CN103646119A (zh) | 用户行为记录的生成方法及装置 | |
CN105634972A (zh) | 一种提高Web客户端访问效率的方法 | |
CN107580052A (zh) | 自演进的网络自适应爬虫方法及系统 | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
US20090172567A1 (en) | Dynamically added navigation widget for loose integration of web pages across different web applications | |
CN103513986A (zh) | 一种在无操作系统设备中利用CGI技术实现动态web服务器的方法 | |
CN103647774A (zh) | 基于云计算的web内容信息过滤方法 | |
Langhnoja et al. | Web usage mining to discover visitor group with common behavior using DBSCAN clustering algorithm | |
Van Woensel et al. | Mobile querying of online semantic web data for context-aware applications | |
CN107305496A (zh) | 应用程序app下载方法及无线网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 Termination date: 20150510 |
|
EXPY | Termination of patent right or utility model |