定向抓取页面资源的方法和装置的制作方法

文档序号:6614804阅读:139来源:国知局

专利名称::定向抓取页面资源的方法和装置的制作方法
技术领域
:本发明涉及互联网资源搜集领域,特别是涉及一种定向抓取页面资源的方法和一种定向抓取页面资源的装置。
背景技术
:随着网络的迅速发展,万维网成为大量信息的载体,为有效地提取并利用这些信息,搜索引擎(SearchEngine)作为一个辅助人们检索信息的工具,成为用户访问万维网的入口和指南。搜索引擎从万维网上自动提取网页的功能是通过网络爬虫实现的。目前的网络爬虫可以分为通用爬虫和聚焦爬虫。通用爬虫是基于广度优先搜索的思想,乂人一个或若干个初始网页的URL(UniformResourceLocator,统一资源定位符)开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。而聚焦爬虫是一个自动下载网页的程序,用于定向抓取相关页面资源。它才艮据既定的4爪取目标,有选择地访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而是将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源,因而聚焦爬虫是目前网络爬虫技术发展的主流方向。通常,聚焦爬虫的工作流程为,根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列;然后,将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。显然,如何指导聚焦爬虫集中抓取与主题相关的页面,而尽量避免访问到非主题相关的页面,成为聚焦爬虫技术需要解决的关键问题。对此,现有技术的一种解决方案为,借鉴通用搜索引擎的链接分析技术,对URL的重要性进行排序,优先抓取那些重要性高的页面。比如JunghooCho在其i仑文(Junghoo1998)中利用页面的PageRank(Sergey1998)值排序URL,优先抓取PageRank值高的页面。但是这种方法仅仅计算待抓页面的重要性值,并没有考虑页面与特定主题相关性,因此用这种算法引导的聚焦爬虫很容易迷失方向,抓下的页面很少是与特定主题相关的,如果统计聚焦爬虫抓取的所有网页中与主题相关的页面所占的比重为收获率,那么这种解决方案的收获率是比较低的。现有技术中的另一种解决方案为,基于Davison(Davison2000)发现的互联网页面的主题相邻性(topicallocality)现象,即用超链4妄连接起来的两个页面比随机的两个页面具有更大的相似性,来预测待纟爪取页面与特定主题的相关性,即如果一张页面与特定主题相关,那么它所连出去的页面与该主题相关的可能性比较大,所以顺着与特定主题相关的页面出去的链接更可能找到其他主题相关的页面。然而,这种仅仅利用父页面与主题的相关度来预测子页面与主题的相关度,并以此作为指导的聚焦爬虫,不可避免地会错失许多与该主题相关的页面,如果统计聚焦爬虫抓取的主题相关页面与互联网上所有的主题相关页面的比率为招回率,那么这种解决方案的招回率是比较低的。因此,如何提高网络爬虫抓取页面资源的收获率与招回率,用以帮助人们从互联网上大范围、高效率、高精度地获取所需的信息,成为本领域技术人员迫切需要解决的技术问题之一。
发明内容本发明所要解决的技术问题是提供一种定向抓取页面资源的方法,用以提高页面资源抓取的收获率与招回率,从而帮助人们从互联网上大范围、高效率、高精度地获取所需的信息。本发明的另一个目的是提供了一种定向抓取页面资源的装置,用以保i正上述方法在实际中的实现和应用。为解决上述技术问题,本发明实施例提供了一种定向抓取页.面资源的方法包括依据种子站点URL预先抓取符合数量阈值的页面;在所述预抓取页面中确定特征页面;生成概括所述特征页面URL的正则表达式;将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;依据所述抓取目标URL抓取页面。优选的,所述生成正则表达式的步骤包括将所述特征页面URL划分成多个URL子集;将所述URL子集聚合成多个URL类;抽取所述URL类的正则表达式。优选的,所述URL包括站点参数和路径参数,所述划分多个URL子集的子步骤包括将具有相同站点参数的URL划分至同一URL子集;将目录数量相同的路径参数的URL划分至同一URL子集。优选的,所述URL还包括查询参数,所述划分多个URL子集的子步骤还包括将具有相同查询参数的URL划分至同一URL子集。优选的,所述聚合多个URL类的子步骤包括预置所述URL类的聚类规则;从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类。优选的,所述聚合多个URL类的子步骤还包括统计所述URL类的个数和URL的总数;依据所述统计结果调整所述URL类的聚类规则。优选的,在预先抓取页面步骤前,还包括过滤种子站点URL,所述种子站点URL包括种子站点的URL及其链接的URL。.优选的,所述过滤种子站点URL的步骤包括读入所述种子站点URL至数组中,对所述数组进行排序;提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。优选的,所述数量阈值的取值范围为1000至5000。优选的,所述预先抓取页面的步骤包括将所述种子站点URL写入数据库;从所述数据库中读取URL,并提取所述URL的站点参数;更新所述站点参数对应的URL抓取数量;判断所述URL抓取数量是否超过所述数量阈值,如果否,则将所述URL添加至URL抓取列表中;下载所述URL抓取列表中的URL对应的页面,并生成相应的页面数据段;依据所述页面数据段更新所述数据库。优选的,所述特征页面包括主题相关页面,所述主题相关页面包括主题相关内容页面和主题相关目录页面。优选的,所述匹配步骤包括若所述种子站点URL与所述主题相关页面的正则表达式匹配,则所述种子站点URL满足匹配条件。优选的,所述特征页面还包括主题无关页面。优选的,所述匹配步骤还包括若所述种子站点URL与所述主题无关页面的正则表达式匹配,则所述种子站点URL不满足匹配条件。优选的,所述的方法还包括统计所述正则表达式匹配的URL数量;若所述URL数量小于预设过滤阈值,则删除所述正则表达式。本发明实施例还公开了一种定向抓取页面资源的装置,包括实验爬虫模块,用于依据所述种子站点URL预先抓取符合数量阈值的页面;分类模块,用于在所述预抓取页面中确定特征页面;正则表达式学习模块,用于生成概括所述特征页面URL的正则表达式;匹配模块,用于将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;聚焦爬虫模块,用于依据所述抓取目标URL抓取页面。优选的,所述正则表达式学习模块包括集合划分子模块,用于将所述特征页面URL划分成多个URL子集;聚类子模块,用于将所述URL子集聚合成多个URL类;抽取子模块,用于抽取所述URL类的正则表达式。优选的,所述URL包括站点参数和路径参数,所述集合划分子模块包括第一划分单元,用于将具有相同站点参数的URL划分至同一URL子集;第二划分单元,用于将目录数量相同的路径参数的URL划分至同一URL子集。优选的,所述URL还包括查询参数,所述集合划分子模块还包括第三划分单元,用于将具有相同查询参数的URL划分至同一URL子集。优选的,所述聚类子模块包括规则设置单元,用于预置所述URL类的聚类规则;处理单元,用于从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类。优选的,所述聚类子模块还包括统计单元,用于统计所述URL类的个数和URL的总数;规则调整单元,用于依据所述统计结果调整所述URL类的聚类规则。优选的,所述的装置还包括种子过滤模块,用于过滤种子站点URL,所述种子站点URL包括种子站点的URL及其链接的URL。优选的,所述种子过滤模块包括数组生成子模块,用于读入所述种子站点URL至数组中,对所述数组进行排序;站点过滤子模块,用于提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。优选的,所述的装置还包括数量统计模块,用于统计所述正则表达式匹配的URL数量;正则表达式筛选模块,用于在所述URL数量小于预设过滤阈值时,删除所述正则表达式。与现有技术相比,本发明具有以下优点主题相关目录页面和主题无关页面的URL正则表达式,然后利用这些URL正则表达式来指导聚焦爬虫的抓取,从而有效提高了页面资源抓取的收获率与招回率,以更好地帮助人们从互联网上大范围、高效率、高精度地获取所需的信息;其次,本发明通过有针对性地获取种子站点,对于种子站点的链接URL进行过滤,从而减少页面抓取的工作量,有效提高了页面抓耳又的效率和页面抓取准确率;再者,本发明利用实验爬虫预先抓取一定数量阈值的页面作为正则表达式学习的基础,控制了页面的抓取深度,不仅提高了实验爬虫的抓取效率,还有效保证了正则表达式学习的代表性;此外,本发明利用正则表达式进行文本匹配,匹配效率较高,并且正则表达式是通过将URL划分集合,然后聚类,再进一步抽取得到,正则表达式具有适当的代表性,从而可以进一步保证抓取目标的准确性;最后,本发明还可以根据URL数量统计结果对正则表达式进行筛选,进一步提高了正则表达式的代表性,从而提高了页面抓取的准确性和有效性。图1是本发明的一种定向抓取页面资源方法实施例的步骤流程與;图2是性能测试过程中抓取主题相关网页的趋势比较图3是性能测试过程中收获率的趋势比较图4是本发明的一种定向抓取页面资源装置实施例的结构框图5是应用图4所示的实施例进行页面资源定向抓取的步骤流程图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算装置环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本发明实施例的核心构思之一在于,通过分析互联网的页面资源得出,互联网上的Web页面大部分是动态页面,而且这些动态页面是/人凄t据库中查询相应的数据记录并填充页面模板形成的,而查询参数一般都包含在URL中。用同一个模板产生的页面URL,往往只有查询字段不一样,而用同一个才莫板产生的页面主题往往也是相似的。简而言之,即用同一个页面模板产生的页面往往是属于同一个类别的,而且其URL是非常相似的。由于在同一个网站上属于同一主题的页面URL具有的相似性,因而可以用一个(或者若干个)正则表达式来概括。比如对于一个图书电子商务网站www.china-pub.com而言,其中的计算机图书信息可以用正则表达式http:〃www.china-pub.com/computers/common/info.aspid=*来才既4舌,星号(元字符)代表各种图书索引.号。有了这个正则表达式,就可以判断该站点中的某个URL所代表的页面是不是有关计算机图书信息的,即通过将URL与正则表达式匹配,即可得出该URL是否与主题相关。对于聚焦爬虫来说,它所感兴趣的某个主题相关的页面往往在同一个网站中有一个或若干个这样的模板生成。因此本发明基于实验爬虫和聚焦爬虫的双爬虫策略架构,提出一种基于URL规则的聚焦爬虫,这种聚焦爬虫可以从每个主题页面相关站点中学习出代表主题相关页面、主题相关目录页面和主题无关页面的URL正则表达式,然后利用这些URL正则表达式来指导聚焦爬虫的抓取。参考图1,示出了本发明的一种定向抓取页面资源方法实施例的流程图,可以包括以下步骤步骤101、获得种子站点URL;本实施例中对所述种子站点URL的获得不作限制,例如,从预置的种子资源库中调用,或依据某个关键词查找获得等,本领域技术人员采用任一方法获得其所需的种子站点URL都是可行的,例如,获得五金行业领域相关种子站点列表为<table>tableseeoriginaldocumentpage13</column></row><table>在实际中,一个站点可能包含大量的超链接页面,比如网易站点(www.163.com),其中就有许多指向体育,军事,财经等内容的超链接,因而,优选的是,所述种子站点URL不仅可以包括种子站点的URL,还可以包括该种子站点所代表页面中的所有超链接的URL。然而,可能的是,某些超链接URL的站点URL已经不是种子站点的URL,如上述网易站点中,有的超链接是通过友情连接等方式超链接的其它站点,如搜狐、新浪等,即非种子站点,在这种情况下,本步骤还可以包括以下子步骤过滤所述种子站点URL。可以理解的是,所述过滤子步骤用以保证爬虫只对种子站点进行深度抓取,例如,在对网易站点中的页面进行抓取时,不会通过友情连接中的超链接抓取到搜狐、新浪等站点的页面。通过分析URL的数据结构可以得知,一个URL可以包括协议参数(如http协议)、站点参数(host)、路径参数(path)和查询参数(query),其中路径参数可以包括一系列目录(directory),查询参数可以包括一系列4建值(Key-Value)对。例如,对于URL:其》占,泉参凄t为www.china-pub.com;路径参数为/member/buybook/view.asp;该路径参数的目录为member,buybook,view.asp;查询参数为add=l&tid=203839,即该查询参数的键值对为(add,l)和(tid,203839)。可以理解,过滤步骤的主要目的在于,通过提取URL的站点参数,判断其是否为种子站点,如果是则保留该URL,如果否,则去除该URL。通过过滤获得种子站点,可以减少后续页面抓取的工作量,从而有效提高抓取效率和抓取准确率。在实际中,可以通过以下子步骤来过滤所述种子站点URL:子步骤Al、读入所述种子站点URL至数组中,对所述数组进行排序;子步骤A2、提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则执行子步骤A3;如果否,则执行子步骤A4;子步骤A3、保留所述URL;子步骤A4、去除所述URL。在实际中,可以采用二分搜索法在数组中搜索,以判断所述数组中是否包含所述站点参数。公知的是,二分搜索法的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x二a[n/2]则找到x,算法终止。假设数组元素呈升序排列,那么如果x<a[n/2],则只要在数组a的左半部继续搜索x;如果x〉a[n/2],则只要在数组a的右半部继续搜索x。当然,上述过滤方法仅仅用于举例,本领域技术人员采用任一种过滤方法,例如,设置站点权重值,按所述权重值过滤;或者,从URL中提取关键词,依据所述关键词进行过滤等都是可行的,本发明对此不需要进行限定。步骤102、依据所述种子站点URL预先抓取符合数量阈值的页面;本步骤是一种实验爬虫策略,这个实验爬虫可以按照预设的页面抓取深度来抓取页面,所述数量阈值就是预设的页面抓取深度值。由于随着抓取深度的增加,所要抓取的页面也会随之成指数级增加,假设深度是d,每层抓取N个页面,那么到第d层,就要抓取^个页面,基于这种情况,如果每层的N太大,那么页面抓取的效率就会过低;而如果每层的N太小,那么抓取页面的分布范围会比较小,广度不足,即不足以产生有代表性的正则表达式。为提高抓取效率,并保证正则表达式的代表性,本发明通过大量实验,不断调整得到一个数量阈值,所述数量阈值的取值范围为1000至5000,在实际中,所述数量阈值可以在配置文件中(如data/config.xml)进行设置,在使用时从配置文件中读取该数量阈值即可。具体而言,本步骤可以基于现有技术中的Nutch爬虫原理实现。NutchCrawler(爬虫)主要用于从网络上抓取网页并为这些网页建立索引。Crawler的重点在两个方面,Crawler的工作流程和涉及的数据文件的格式和含义。数据文件主要包括三类,分别是WebDB数据库(Webdatabase,Web数据库)、一系列的segment(页面数据段)加上index(索引信息),WebDB存储的是爬虫所抓取网页之间的链接结构信息,它只在爬虫Crawler工作中使用。WebDB内存储了两种实体的信息page(页面)和link(链接)。Page实体通过描述网络上一个网页的特征信息来表征一个实际的网页,因为网页有4艮多个需要描述,WebDB中通过网页的URL和网页内容的MD5两种索引方法对这些网页实体进行了索引。Page实体描述的网页特征主要包括网页内的link数目,4爪取此网页的时间等相关抓取信息,对此网页的重要度评分等。同样的,Link实体描述的是两个page实体之间的链接关系。WebDB构成了一个所抓取网页的链接结构图,这个图中Page实体是图的结点,而Link实体则代表图的边。Crawler的一次爬4亍会产生4艮多个segment,每个segment内存4诸的是Crawler在单独一次抓取循环中抓到的网页以及这些网页的索引。Crawler爬行时会根据WebDB中的link关系按照一定的爬行策略生成每次抓取循环所需的fetchlist(抓取列表),然后Fetcher(下载线程)会通过fetchlist中的URL抓取这些网页并索引,然后将其存入segment。Segment是有时限的,当这些网页被Crawler重新抓取后,先前抓取产生的segment就作废了。Segment文件夹以产生时间命名的,以方便删除作废的segments以节省存储空间。Index是Crawler抓取的所有网页的索引,它是通过对所有单个segment中的索引进行合并处理所得的。Crawler的工作原理是首先Crawler根据WebDB生成一个待抓取网页的URL集合叫做Fetchlist,接着下载线程Fetcher开始根据Fetchlist将网页抓取回来,如果下载线程有^艮多个,那么就生成;f艮多个Fetchlist,也就是一个Fetcher对应一个Fetchlist。然后Crawler根据抓取回来的网页WebDB进行更新,根据更新后的WebDB生成新的Fetchlist,里面是未抓取的或者新发现的URL,然后下一轮抓取循环重新开始。这个循环过程可以叫做"产生/抓取/更新"循环。此外,指向同一个主机上Web资源的URL通常被分配到同一个Fetchlist中,这样的话可以防止过多的Fetchers对一个主机同时进行抓取造成主机负担过重。在Nutch中,Crawler操作的实现是通过一系列子操作的实现来完成的。这些子操作包括1、创建一个新的WebDB;2、将抓取起始URL写入WebDB中;3、根据WebDB生成fetchlist并写八相应的segment;4、根据fetchlist中的URL抓取网页;5、根据抓取网页更新WebDB;6、循环进行3-5步直至预先设定的抓取深度。7、根据WebDB得到的网页评分和links更新segments;8、对所抓取的网页进行索引;9、在索引中丟弃有重复内容的网页和重复的URL;10、将segments中的索引进行合并生成用于检索的最终index(merge)。Crawler详细工作流程是在创建一个WebDB之后(步骤1);"产生/抓取/更新,,循环(步骤3-6)根据一些种子URL开始启动。当这个循环彻底结束,Crawler根据抓取中生成的segments创建索引(步骤7-10)。在进行重复URL清除(步骤9)之前,每个segment的索引都是独立的(步骤8)。最终,各个独立的segment索引被合并为一个最终的索引index(步骤10)。依据上述Nutch爬虫的工作原理,在本实施例中,可以对其4爪取列表的产生进行修改,具体而言,主要可以通过以下子步骤预先抓取页面子步骤B1、将所述种子站点URL写入数据库(WebDB);子步骤B2、从所述数据库中读取URL,并提取所述URL的站点参数(host);子步骤B3、更新所述站点参数对应的URL抓取数量;子步骤B4、判断所述URL抓取数量是否超过所述数量阈值,如果否,则将所述URL添加至URL抓取列表中;子步骤B5、下载所述URL4爪取列表中的URL对应的页面,并生成相应的页面凝:据l殳(Segment);子步骤B6、依据所述页面数据段更新所述数据库。作为本实施例的另一种实现方案,所述过滤种子站点URL的步骤也可以在本步骤中完成,例如,通过以下子步骤预先纟爪取页面子步骤C1、将所述种子站点URL写入数据库(WebDB);于步骤C2、从所述数据库中读取URL,并提取所述URL的站点参数(host);子步骤C3、判断所述站点参数是否匹配所述种子站点,如果是,则直接执行子步骤C4;如果否,则去除所述URL;子步骤C4、更新所述站点参数对应的URL抓取数量;子步骤C5、判断所述URL抓取数量是否超过所述数量阈值,如果否,则将所述URL添加至URL4爪取列表中;子步骤C6、下载所述URL抓取列表中的URL对应的页面,并生成相应的页面数据段(Segment);子步骤C7、依据所述页面数据段更新所述数据库。当然,上述预先抓取页面的方法仅仅用于举例,本领域技术人员根据实际情况采用任一种网络爬虫对页面进行预先抓取都是可行的,本发明对此不需要进行限定。步骤103、在所述预l爪取页面中确定特征页面;在本实施例中,所述特征页面可以包括主题相关页面,所述主题相关页面可以进一步包括主题相关内容页面和主题相关目录页面。其中,所述主题相关目录页面为包含链接主题相关内容页面的链接页面。为进一步提供页面抓取的准确性,所述特征页面还可以包括主题无关页面。现有技术中,已经提出了诸多关于页面分类的方法,例如,一种页面分类方法包括以下步骤11)预置样本库,针对每一样本计算得到样本特征参数;12)收集互联网中符合预置条件的网络文本,计算得到网络文本相应的文本特征参数;13)对比文本特征参数与样本库中各样本的特征参数,依次完成网络文本的归类。一般而言,可以将一网络文本归入与其相似度最高的样本类中。或者,可以采用LingPipe(Alias-i开发的一个自然语言处理的Java开源工具包)来进行页面分类,以新闻页面分类为例,可以包括以下步骤21)从原有数据库中读取出新闻文本内容及其类别,然后根据类别把包含新闻内容的各个文件存放在不同的文件夹,比如体育新闻内容存放在1这个文件夹下,娱乐新闻存放在2这个文件夹下,这些数据统称为训练数据;22)基于LingPipe开源包,首先设置相似度阈值(可以从配置文件data/config.xml中获取,阈值越大相似的模糊性就越高,即越容易误判),然后提取页面的文本内容,与训练数据进行匹配,若匹配功能,则获取与这个文本内容最相近的训练数据,然后获取这个训练数据所属的内容类别作为这个页面的类别;23)提取关键词,并根据需要赋给关键词一定的权重,进一步确认这个页面是否应当分配在所述类别中。为正则表达式的学习提供了一个良好的资源基础。步骤104、生成概括所述特征页面URL的正则表达式;公知的是,正则表达式是用于进行文本匹配的工具,通常由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。正则表达式的匹配可以理解为,在给定的字符串中,寻找与给定的正则表达式相匹配的部分。有可能字符串里有不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。匹配在本文里可以包括三种含义一种是形容词性的,比如说一个字符串匹配一个表达式;一种是动词性的,比如说在字符串里匹配正则表达式;还有一种是名词性的,就是刚刚说到的"字符串中满足给定的正则表达式的一部分,,。以下通过举例对正则表达式的生成规则进行说明。々I设要查找hi,则可以使用正则表达式hi。这个正则表达式可以精确匹配这样的字符串由两个字符组成,前一个字符是h,后一个是i。在实际中,正则表达式是可以忽略大小写的。如果很多单词里都包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这此单词里面的hi也会被找出来。如果要精确地查找hi这个单词的话,则应该使用、bhi^。其中,\b是正则表达式的一个元字符,它代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格或标点符号或换行来分隔的,但是Xb并不匹配这些单词分隔符中的任何一个,它只匹配一个位置。假如要找的是hi后面不远处跟着一个Lucy,则应该用XbhAb^bLucyXb。其中,.是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,它代表的是数量——即指定*前边的内容可以连续重复出现任意次以4吏整个表达式得到匹配。现在XbhiXb."bLucy、b的意思就很明显了先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。优选的,本步骤可以包括以下子步骤子步骤D1、将所述特征页面URL划分成多个URL子集;子步骤D2、将所述URL子集聚合成多个URL类;子步骤D3、抽取所述URL类的正则表达式。一般而言,所述划分多个URL子集的子步骤可以通过将具有相同站点参数的URL划分至同一URL子集实现。更具体地,所述划分多个URL子集的子步骤可以通过以下步骤实现将具有相同站点参数的URL划分至同一URL子集;将目录数量相同的路径参数的URL划分至同一URL子集。在某些情况下,所述划分多个URL子集的可以通过以下步骤实现将具有相同站点参数的URL划分至同一URL子集;将目录数量相同的路径参数的URL划分至同一URL子集;将具有相同查询参数的URL划分至同一URL子集。可以看出,URL划分是按照某种标准把URL集合分成几个子集。它的输入是一个URL集合,输出是几个URL子集。首先基于URL的站点参数部分的关系,把站点参数相同的URL归为同一子集,这样整个URL集合就分成几个子集,每个子集内URL的站点参数是相同的。这样划分后还可以进一步划分,例如再按照URL的路径参数部分的目录数量划分,数量相同的归为同一子集,或进一步按照URL的查询参数部分划分,查询参数相同的归为同一子集,不过在实际中,_如果URL只有查询参数部分不相同,则这两个URL所指的页面基本都是同一个模板产生的,一般也属于同一类页面。所以基于查询参数部分划分子集往往用于比较极端的情况。对URL集合进行划分主要是为了下一步聚类的方便,以节省聚类的处理时间。在这种情况下,所述聚合多个URL类的子步骤可以包括预置所述URL类的聚类规则;从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类。这样经过聚合之后在URL类队列中就得到一些URL类,一类URL可以包含若干个相似的URL,即一个URL类中的URL具有一定的相似性,因而优选的是,所述聚类规则可以通过设置相似函数实现,即同一个类中所有URL相互之间都满足这个相似函数。为获取更好的聚类结果,所述聚合多个URL类的子步骤还可以包括步骤统计所述URL类的个数和URL的总数;依据所述统计结果调整所述URL类的聚类规则。然后,对每一个URL类抽取出一条能够扭克括和代表这个类的URL正则表达式。具体而言,根据前面所述的URL的数据结构,即把URL分解为host(站点参数),path(路径参数)和query(查询参数)三部分,并4巴path分解成一系歹Udirectory,才巴query分解成一系列键值对。由于host部分肯定是相同的,所以直接把host记在正则表达式中即可,然后把path部分的各个directory对齐,若相应位置上的directory相同,则把这部分值加进正则表达式中,否则用*加进正则表达式中;对于query部分也采用和path部分类似的方法加进正则表达式中,乂人而生成相应的正则表达式,所述正则表达式通常为多个。步骤105、将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;在所述特征页面为主题相关页面的情况下,正则表达式也是概括主题相关页面的URL生成的,在这种情况下,所述匹配步骤可以包括若所述种子站点URL与所述主题相关页面的正则表达式匹配,则所述种子站点URL满足匹配条件。在所述特征页面为主题无关页面的情况下,正则表达式也是概括主题无关页面的URL生成的,在这种情况下,所述匹配步骤可以进一步包括若所述种子站点URL与所述主题无关页面的正则表达式匹配,则所述种子站点URL不满足匹配条件。通过将种子站点URL与主题相关的正则表达式及主题无关的正则表达式都进行匹配,可以更好地确定是否抓取该所代表的页面,从而进一步提高页面抓取的有效性和准确性。当然,本领域技术人员依据实际情况设置相应的匹配条件都是可行的,本发明对此不需要进行限定。由于实际中可能把少数的主题相关页面划为主题无关页面,或者把少数的主题无关页面划为主题相关页面,这样从一个网站学习出来的代表主题相关的URL正则表达式中,就可能存在一些实际上代表主题无关页面的URL正则表达式。为过滤这些正则表达式,本实施例还可以包括以下步骤统计所述正则表达式匹配的URL数量;若所述URL数量小于预设过滤阈值,则删除所述正则表达式。通常,这些URL正则表达式匹配的URL数量是比较小的,所以可以把匹配URL数量特别少的URL正则表达式当作噪音过滤掉。具体而言,所述URL数量可以基于以下匹配对应策略来统计1、如果URL存在多条与之匹配的主题相关URL的正则表达式,则将URL与匹配的URL数量最多的那条正则表达式匹配;2、如果URL存在多条与之匹配的主题无关URL正则表达式,则将URL与匹配的URL数量最多的那条正则表达式匹配。在这种情况下,若所述特征页面包括主题相关页面和主题无关页面,所述匹配步骤可以包4舌子步骤子步骤S1、将所述种子站点URL分别与所述主题相关页面的正则表达式,以及,所述主题无关页面的正则表达式进^f亍匹配;子步骤S2、夯-另ll统计所述种子站点URL所匹酉己的主题相关页面正则表达式所对应的URL数量,以及主题无关页面的正则表达式所对应的URL数量,并进行对比;子步骤S3、若对比结果符合噪音过滤阈值,则所述种子站点URL不满足匹配条件。步骤106、依据所述抓取目标URL抓取页面。本步骤中所述页面抓取可以参考前述Nutch爬虫实现,也可采用现有技术中的其它方法实现,本发明对此不作限制。在实际中,还可能存在"过度学习"(学习出来的正则表达式概括性太高,把其他类别的URL都匹配了)或者"欠学习,,(学习出来的正则表达式只是匹配一个类别的一部分,导致这个类别的其他URL不能匹配)的问题,为了解决这个问题,还可以在页面抓取时执行以下策略1、判断新URL的站点参数是否为衍生站点,如果否则不抓取该URL的页面,结束流程;2、从URL正则表达式列表中寻找一条与当前URL匹配的主题相关页面的URL正则表达式,如果否则不4爪取该URL的页面,结束流程;3、如果存在多条与之匹配的主题相关页面的URL正则表达式,则选择那条最优的正则表达式,最优是指其归纳的URL数量是最多的;4、从URL正则表达式列表中寻找一条与之匹配的主题无关页面的URL正则表达式,如果不存在则抓取该URL的页面,结束流程;5、如果存在多条与之匹配的主题无关页面的URL正则表达式,则选择那条最优的正则表达式;6、*p/iV>/,则抓取该页面,否则不抓取。其中,P代表最优主题相关页面的URL正则表达式归纳的URL数量,^代表最优主题无关页面的URL正则表达式归纳的URL数量,,是一个23大于0的过滤阈值。为使本领域技术人员更好地理解本发明,以下通过一个具体例子对本发明实施例具体说明。(一)获得种子站点URL,对种子站点URL所代表页面中的超链接URL进行过滤,获得与主题相关的"衍生站点URL列表"。具体过程为首先从一个种子站点文件读入种子站点URL到一个数组中,然后对这个数组进行排序;对于待抓取的URL,首先取出其站点参数,然后把该站点参数利用二分搜索在数组中进行搜索,如果发现数组中包含此站点参数则返回该URL,这表示不过滤该URL,应该抓取该URL所代表的页面。如果数组中不包含此站点名,则过滤掉该URL,表示不应该纟爪取该URL所代表的页面。这个步骤可以减少实验爬虫的工作量,同时提高了实-险爬虫的效率和精确度。(二)利用实验爬虫抓取待学习页面根据过滤后的种子站点URL列表(即衍生站点URL列表),用一个实验爬虫依据这些URL去抓取网页,它釆用广度优先搜索算法从每个种子站点中抓取最多N张页面(N为1000-5000)。该实验爬虫基于Nutch(Apache2007)实现,但本例中修改了Nutch爬虫的抓取列表产生器,修改之后的抓取列表产生器的流程为1、读取配置文件中(data/config.xml)设置的URL数量阈值,初始化MAP(站点参数,URL数量);2、提取要抓取的URL的站点参数,在MAP中查找是否有相应的站点参数,如果是,则直接执行4;如果否,则执行3;3、在MAP中加入站点参数,并将其对应的URL数量初始化为0;4、把相应的站点参数对应的URL数量加1;5、判断所述站点参数对应的URL数量是否超过数量阈值,如果是,则不在抓取列表中添加这个URL;如果否,则在抓取列表中添加这个URL。(三)对抓取到的N张页面进行分类,确定一张页面是不是主题相关内容页面或主题相关目录页面,所述主题相关内容页面与主题相关目录页面构成主题相关页面集合;(四)从主题相关页面集合中学习出URL正则表达式具体的学习过程为;1.URL3巨离(1)URL数据结构把一个URL分成三个部分(去掉http协议部分)host,path,query。其中path由一系列directory组成,query由一系列4建值对组成。比如URLhttp:〃www,china-pub.com/member/buybook/view.aspadd=l&tid=203839,其host为www.china-pub.com;path为/member/buybook/view.asp,组成该path的directory为member,buybook,view.asp;query为add=l&tid=203839,组成该query的键值对为(add,1)和(tid,203839)。用java表示URL数据结构如下所示publicclassURLtruct{privateStringhost;privateString[]path;privateArrayList<Pair<String,String>>query;(2)URL距离(相似度)的度量把一个URL分解成上述URL数据结构后,就可以基于这个URL数据结构各个部分的距离来计算URL的距离。两个URLz'和y的距离《肌("')可以通过以下/>式表示"弧("J')=dO',J.)+1)x0',力+1)x(』("力+1)-1其中,々刀,力为第/和第7个URL的host部分的距离,^。'""')为第/和第7个URL的path部分的距离,^呵(z',力为第f和第J'个URL的query部分的距离。上述三个部分的距离计算原理如下a、若两个URL的host不相同,则32,否则"麵"力=0。这样设置^。力',力,有利于阻止来自不同host的URL聚成同一个类。b、记第z'和第7'个URL的path部分分别有附个directory和"个directory,设附^"。记前附个相应位置上的不等的directory的数量为*,则4("/)=Ax2+O_附)x4c、对4呵("力进行简单的设置,若相等,则"e,("力=0;否则《)呵("')=1。因为对于大多数网站,如果其它部分相等而只有query部分不等,通常这两个URL所指的页面基本是同一个模板产生的,一般也是属于同一类页面。2.URL集合划分URL划分是按照某种标准把URL集合分成几个子集。它的输入是一个URL集合,输出是几个URL子集。在本例中,可以按照URL的host部分的关系,把host相同的URL归为同一子集,这样整个URL集合就分成几个子集,每个子集内的URL的host相同,不同子集间的URL的host不同;或者,再按照URL的path部分的directory数量划分,数量相同的归为同一子集。3、URL聚合算法对一个URL集合划分之后就得到几个URL子集,这样的URL子集为一簇URL,对每一簇URL都实行聚合算法,聚合成若干类URL。聚合的具体过程可以分为以下几步(1)从URL集合划分得到的某个URL簇中读取URL列表;(2)杀斤建一个URL类歹'J表C[肌=Q^(2),…,Q/虹(_/),…C[^(附》,并初始化,使得C弧G卜^"1),设置距离阈值"l;;(3)从聚合对象URL簇中的URL列表中继续读取"^(0,"2,3』,若/>="则结束;(4)从URL类列表C,中寻找与^"z')匹配的URL类C弧(力,若匹配成功,则把"^(0加入该q肌C/)中;若没有相匹配的URL类,则新建一个URL类G皿"+D,然后把"及"z')加入新建的URL类C匿G'+"中,并4巴该新建URL类插入到URL类列表q皿中,转到步骤3。一个URL与一个URL类匹配是指该URL和该URL类中所有的URL的距离都不大于一个距离阈值、即这样经过聚合之后在URL类队列中就得到一些URL类,同一个类内的所有URL相互之间的距离都不大于距离阈值、所以同一个类内的URL具有一定的相似性。^^》^j;断聚合得到的URL类列表是否满足下列条件其中,附为静态聚合产生的聚合结果中的URL类的个数,"为URL总数,/为G皿W中所包含URL个数的最大值,p为数量归纳参数,g<p<1,P越大则聚合出来的URL类的个数m越少,每个URL类包含的URL数也就越多。P可以通过实验比较来获取一个合适的值。如果满足则结束,否则执行""l,转到步骤3继续聚合。通过上述聚合过程,就可以得到一个URL类的列表c肌—Q/附-0),c[肌(2),…,CmlC/),…c弧O》,这个列表中的每一个类c〖肌(力分另ij代表了1个或多个URL。4、URL正则表达式抽取对一簇URL进行聚合之后,产生了若干个URL类C皿W,接下来的抽取过程就是对每一个URL类抽取出一条能够概括和代表这个类的URL正则表达式。根据前面所述的URL数据结构,把所有URL分解为host,path和query三部分,并把path分解成一系歹'Jdirectory,把query分解成一系列键值对。由于host部分肯定是相同的,所以就把host按照原样记在正则表达式中。把path部分的各个directory对齐,若相应位置上的directory相同则把这部分值加进正则表达式中,否则用*加进正则表达式中。对于query部分也采用和path部分类似的方法。最后就可以得到几个五金行业相关的正则表达式。(五)聚焦爬虫根据"衍生站点URL列表",在正则表达式指导下进行Web页面抓取工作。主要步骤如下1、读取衍生站点URL列表;2、读取上一阶段获取的URL正则表达式列表文件(包括主题相关正则表达式和主题无关正则表达式),然后根据正则表达式对每个衍生站点URL进行正反例匹配,以确定是否抓取该衍生URL所在的Web页面,才艮据抓取的衍生URL生成"抓取目标URL列表";3、根据"抓取目标URL列表"进行Web页面4爪耳又工作。本例中的聚焦爬虫也是基于Nutch爬虫实现的,同样只是修改了抓取列表产生器部分。修改之后的抓取列表产生器的流程为1、初始化。初始化一个站点过滤器和一个URL正则表达式过滤器;站点过滤器的规则是根据判断要抓取的URL的Host能否在衍生站点列表中中找到,如果能够找到,则该URL通过站点过滤器,不会被过滤掉,这是为了保证爬虫不会抓取到非主题相关站点列表上的站点页面,提高垂直抓取效率。式匹配,如果是,则不用过滤;如果否,则将其过滤掉。2、从WebDB中读取一条需要抓取的URL;3、对该URL用站点过滤器进行过滤,如果需要过滤则转到6;4、对该URL用URL正则表达式过滤器进行过滤,如果需要过滤则转到6;5、把该URL加入需要抓取URL列表中;6、如果读取WebDB完毕则结束,否则转到2。(六)噪音过滤实际中,可能存在把少数的主题相关页面判为主题无关页面,或者把少数的主题无关页面判为主题相关页面的问题,这样就会导致从一个网站学习出来的代表主题相关的URL正则表达式中,可能存在一些实际上代表主题无关页面的URL正则表达式。因而需要过滤这些URL正则表达式。由于这些URL正则表达式归纳的URL数量是比较小的,所以可以把那种归纳的URL数量特别少的URL正则表达式当作噪音过滤掉。过滤的标准是"匿《WXV其中,""虹为归纳得到的URL数,v为"噪音过滤阈偉",通常0<v<l。为更好地说明本发明的4支术效果,以下通过应用本发明的聚焦爬虫(UBFC),广度优先搜索爬虫(BFSC),基本聚焦爬虫(BLFC)抓取五金行业新闻页面的性能对比说明。所述性能可以通过收获率和招回率来评1^介,具体而言,收获率可以代表网络爬虫抓取的所有网页中与主题相关的页面所占的比重,即可代表抓取的准确率。可以通过以下公式计算g=其中,g代表收获率,"代表抓取的主题相关网页数,"代表总共抓取的网页凄t。题相关页面的比率,可以通过以下公式计算r=p/戸其中,r代表招回率,^代表抓取的主题相关页面数,戸代表实际存在的总共主题相关页面数。需要说明的是,由于无法统计互联网上有多少主题相关页面,因而在实际中很难计算招回率,因而实验是基于模拟数据集进行的,在这种情况下,模拟数据集作为模拟实验中的互联网,用模拟数据集包含的主题相关页面数量作为总共主题相关页面数量来计算招回率。分别用本发明的聚焦爬虫(UBFC),广度优先搜索爬虫(BFSC),基本聚焦爬虫(BLFC)对前述五金行业领域相关种子站点列表进行了一次实际网络抓取,抓取的深度是4,开启的线程为57个,采用各种爬虫抓取的结果如下述抓取测试结果表所示。表中S代表总共抓取页面数量,P代表相关页面数量,G代表收获率,R代表招回率。需要注意的是,广度优先搜索爬虫(BFSC)并没有招回率,因为BFSC抓取下来的相关页面数量是作为基准值用来计算其它两个爬虫的招回率。BFSC,BLFC,UBFC的抓取测试结果为<table>tableseeoriginaldocumentpage30</column></row><table>从上表中可以看出,beareyes、ce、chemeinfo、chinabmb、cnpv、fsonline、ieicn、sgOOl、xmnn等网站几乎没有主题相关页面,但BFSC还是从这几个网站下载了51135张页面,其中有401张是与主题相关的。BLFC只乂人这些网站下载了593张页面,其中有4张是与主题相关的,而UBFC工作的要更好一些,它下载了575张页面,其中有42张是与主题相关的,从这一点表现上来说UBFC无疑是性能最佳的。从总体看,BFSC总共抓取了82946张页面,其中只有3558张是与主题相关的,收获率为0.04。BLFC总共抓取了1629张页面,其中有95张是与主题相关的,收获率为0.06,只比BFSC高了一点,而其招回率只有0.03,从这一点上说,BFSC的使用价值很小,因为有大量的相关页面没有抓取到。这是因为仅仅抓取从主题相关的页面链接出来的URL所致辞,因为并不是所有主题相关页面都链接在一起,而且现在的页面往往包含大量的链接,其中绝大部分可能都是主题无关的,这也是为什么BLFC只抓取了如此少的页面的原因。UBFC总共抓取了5670张页面,其中1514张页面是与主题相关的,其收获率为0.27,招回率为0.43。可以看到UBFC总共纟爪取的页面数量只有BFSC的十五分之一,而其招回率则接近二分之一,是BLFC的10多倍,收获率更是BFSC的6倍多,是BLFC的4倍多。进一步可以参考图2,这是性能测试过程中抓取主题相关网页的趋势比较图,这个比较图是与时间相关的。刚开始时三个爬虫抓取的相关页面数量差不多,但随着时间的推移,UBFC的增长越来越快,从而证明本发明的优点开始体现。而BFSC和BLFC增长緩慢,最后,BLFC抓取的相关页面甚至少于BFSC,这是因为,一、BLFC在决定是否把一个未知URL放入抓取列表时需要判断其父页面是否是主题相关页面,这需要时间;二、BLFC在决定是否要把一个未知URL放入抓取列表时,相对于BFSC进行了更多的过滤,所以其每一层需要抓取的页面相对于BLFC很少,这样很快就完成了一层页面的抓取,使得它有大量的时间不是在进行实际的页面抓取,而是消耗在了Nutch的数据结构的自我更新维护上了。图3进一步说明了三个爬虫的收获率与时间的关系,从图中可以看出,BFSC和BLFC的收获率很快就趋于稳定,而UBFC的收获率上升的时间更为久一点,并渐渐趋于稳定,而且其收获率要远远高于其它爬虫。通过以上的分析可以得出,本发明有效提高了页面资源抓取的收获率与招回率,可以更好地帮助人们从互联网上大范围、高效率、高精度地获取所需的信息。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以釆用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。参考图4,示出了本发明一种定向抓取页面资源的装置实施例的结构框图,可以包括以下模块种子过滤模块401,用于对种子站点URL进行过滤,所述种子站点URL包括种子站点的URL及其链接的URL;实验爬虫模块402,用于依据所述种子站点URL预先抓取符合数量阈4直的页面;分类模块403,用于在所述预抓取页面中确定特征页面;正则表达式学习模块404,用于生成概括所述特征页面URL的正则表达式;匹配模块405,用于将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;聚焦爬虫模块406,用于依据所述抓取目标URL抓取页面。优选的,所述正则表达式学习模块404可以包括以下子模块集合划分子模块,用于将所述特征页面URL划分成多个URL子集;聚类子模块,用于将所述URL子集聚合成多个URL类;抽取子模块,用于抽取所述URL类的正则表达式。优选的,所述URL包括站点参数,所述集合划分子模块可以包括以下单元第一划分单元,用于将具有相同站点参数的URL划分至同一URL子集。更为优选的,所述URL还可以包括路径参数,所述集合划分子模块还可以包纟舌以下单元第二划分单元,用于将目录数量相同的路径参数的URL划分至同一URL子集。更进一步地,所述URL还可以包括查询参数,所述集合划分子模块还可以包括以下单元第三划分单元,用于将具有相同查询参数的URL划分至同一URL子集。优选的,所述聚类子模块可以包括以下单元规则设置单元,用于预置所述URL类的聚类规则;处理单元,用于从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配真所述URL类中;如果否,则依据所述URL新建一个URL类。更为优选的,所述聚类子模块还可以包括以下单元统计单元,用于统计所述URL类的个数和URL的总数;规则调整单元,用于依据所述统计结果调整所述URL类的聚类规则。优选的,所述种子过滤才莫块可以包括以下单元数组生成子模块,用于读入所述种子站点URL至数组中,对所述数组进行排序;站点过滤子模块,用于提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。优选的,本实施例还可以包括以下模块数量统计模块,用于统计所述正则表达式匹配的URL数量;正则表达式筛选模块,用于在所述URL数量小于预设过滤阈值时,删除所述正则表达式。参考图5,示出了应用图4所示的实施例定向抓取页面资源的方法流程图,可以包括以下步骤步骤501、种子过滤模块过滤种子站点URL;优选的,所述种子站点URL包括种子站点的URL及其链接的URL,在这种情况下,所述种子过滤模块的处理步骤包括数组生成子模块读入所述种子站点URL至数组中,对所述数组进行排序;站点过滤子模块提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。步骤502、实验爬虫模块依据所述种子站点URL预先抓取符合数量阈值的页面;优选的,所述数量阈值的取值范围为1000至5000,所述实验爬虫才莫块可以通过以下步骤来抓取页面将所述种子站点URL写入数据库;从所述数据库中读取U;RL,并提取所述URL的站点参数;更新所述站点参数对应的URL抓取数量;判断所述URL抓取数量是否超过所述数量阈值,如果否,则将所述URL添加至URL抓取列表中;下载所述URL抓取列表中的URL对应的页面,并生成相应的页面数据段;依据所述页面数据段更新所述数据库。步骤503、分类模块在所述预抓取页面中确定特征页面;步骤504、正则表达式学习才莫块生成概括所述特征页面URL的正则表达式;优选的,所述正则表达式学习模块可以通过以下步骤学习特征页面URL的正则表达式集合划分子模块将所述特征页面URL划分成多个URL子集;聚类子模块将所述URL子集聚合成多个URL类;抽取子模块抽取所述URL类的正则表达式。具体而言,所述URL可以包括站点参数、路径参数和查询参数,所述集合划分子模块可以通过以下步骤划分URL子集第一划分单元将具有相同站点参数的URL划分至同一URL子集;第二划分单元将目录数量相同的路径参数的URL划分至同一URL子集;第三划分单元将具有相同查询参数的URL划分至同一URL子集。在这种情况下,所述聚类子模块可以通过以下步骤聚合URL类规则设置单元预置所述URL类的聚类规则;处理单元从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类;统计单元统计所述URL类的个数和URL的总数;规则调整单元依据所述统计结果调整所述URL类的聚类规则。然后,抽取子模块对每一个URL类抽取出一条能够概括和代表这个类的URL正则表达式。具体而言,根据前面所述的URL的数据结构,即把URL分解为host,path和query三部分,并把path分解成一系列directory,把query分解成一系列键值对。由于host部分肯定是相同的,所以直接把host记在正则表达式中即可,然后把path部分的各个directory对齐,若相应位置上的directory相同,则把这部分值加进正则表达式中,否则用*加进正则表达式中。对于query部分也采用和path部分类似的方法。最后就可以得到多个相应的正则表达式。步骤505、匹配模块将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;在本实施例中,对于主题相关页面而言,若所述种子站点URL与所述主题相关页面的正则表达式匹配,则所述种子站点URL满足匹配条件;对于主题无关页面而言,若所述种子站点URL与所述主题无关页面的正则表达式匹配,则所述种子站点URL不满足匹配条件。步骤506、聚焦爬虫模块依据所述抓取目标URL抓取页面。优选的,本实施例可以进一步包括以下步骤数量统计模块统计所述正则表达式匹配的URL数量;正则表达式篩选模块在所述URL数量小于预设过滤阈值时,删除所述正则表达式。对于装置实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种定向抓取页面资源的方法和一种定向抓取页面资源的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种定向抓取页面资源的方法,其特征在于,包括依据种子站点URL预先抓取符合数量阈值的页面;在所述预抓取页面中确定特征页面;生成概括所述特征页面URL的正则表达式;将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;依据所述抓取目标URL抓取页面。2、如权利要求l所述的方法,其特征在于,所述生成正则表达式的步骤包括将所述特征页面URL划分成多个URL子集;将所述URL子集聚合成多个URL类;抽取所述URL类的正则表达式。3、如权利要求2所述的方法,其特征在于,所述URL包括站点参数和路径参数,所述划分多个URL子集的子步骤包括将具有相同站点参数的URL划分至同一URL子集;将目录数量相同的路径参数的URL划分至同一URL子集。4、如权利要求3所述的方法,其特征在于,所述URL还包括查询参数,所述划分多个URL子集的子步骤还包括将具有相同查询参数的URL划分至同一URL子集。5、如权利要求2、3或4所述的方法,其特征在于,所述聚合多个URL类的子步骤包括预置所述URL类的聚类规则;从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类。6、如权利要求5所述的方法,其特征在于,所述聚合多个URL类的子步骤还包括统计所述URL类的个数和URL的总数;依据所述统计结果调整所述URL类的聚类规则。7、如权利要求l所述的方法,其特征在于,在预先抓取页面步骤前,还包括过滤种子站点URL,所述种子站点URL包括种子站点的URL及其链接的URL。8、如权利要求7所述的方法,其特征在于,所述过滤种子站点URL的步骤包括读入所述种子站点URL至数组中,对所述数组进行排序;提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。9、如权利要求l所述的方法,其特征在于,所述数量阈值的取值范围为1000至5000。10、如权利要求l、7或9所述的方法,其特征在于,所述预先抓取页面的步骤包括将所述种子站点URL写入数据库;从所述数据库中读取URL,并提取所述URL的站点参数;更新所述站点参数对应的URL抓取数量;判断所述URL抓取数量是否超过所述数量阈值,如果否,则将所述URL添加至URL抓取列表中;下载所述URL抓取列表中的URL对应的页面,并生成相应的页面数据段;依据所述页面数据段更新所述数据库。11、如权利要求1所述的方法,其特征在于,所述特征页面包括主题12、如权利要求11所述的方法,其特征在于,所述匹配步骤包括若所述种子站点URL与所述主题相关页面的正则表达式匹配,则所述种子站点URL满足匹配条件。13、如权利要求11所述的方法,其特征在于,所述特征页面还包括主题无关页面。14、如权利要求13所述的方法,其特征在于,所述匹配步骤还包括若所述种子站点URL与所述主题无关页面的正则表达式匹配,则所述种子站点URL不满足匹配条件。15、如权利要求11或13所述的方法,其特征在于,还包括统计所述正则表达式匹配的URL数量;若所述URL数量小于预设过滤阈值,则删除所述正则表达式。16、一种定向抓取页面资源的装置,其特征在于,包括实验爬虫模块,用于依据所述种子站点URL预先抓取符合数量阈值的页面;分类模块,用于在所述预抓取页面中确定特征页面;正则表达式学习模块,用于生成概括所述特征页面URL的正则表达式;匹配模块,用于将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;聚焦爬虫模块,用于依据所述抓取目标URL抓取页面。17、如权利要求16所述的装置,其特征在于,所述正则表达式学习模块包括集合划分子模块,用于将所述特征页面URL划分成多个URL子集;聚类子模块,用于将所述URL子集聚合成多个URL类;抽取子模块,用于抽取所述URL类的正则表达式。18、如权利要求17所述的装置,其特征在于,所述URL包括站点参数和路径参数,所述集合划分子模块包括第一划分单元,用于将具有相同站点参数的URL划分至同一URL子集;第二划分单元,用于将目录数量相同的路径参数的URL划分至同一URL子集。19、如权利要求18所述的装置,其特征在于,所述URL还包括查询参数,所述集合划分子模块还包括第三划分单元,用于将具有相同查询参数的URL划分至同一URL子集。20、如权利要求17、18或19所述的装置,其特征在于,所述聚类子模块包括.规则设置单元,用于预置所述URL类的聚类规则;处理单元,用于从所述URL子集中读取URL,并判断所述URL是否符合所述URL类的聚类规则,如果是,则将所述URL分配至所述URL类中;如果否,则依据所述URL新建一个URL类。21、如权利要求20所述的装置,其特征在于,所述聚类子模块还包括统计单元,用于统计所述URL类的个数和URL的总数;规则调整单元,用于依据所述统计结果调整所述URL类的聚类规则。22、如权利要求16所述的装置,其特征在于,还包括种子过滤模块,用于过滤种子站点URL,所述种子站点URL包括种子站点的URL及其链4妻的URL。23、如权利要求22所述的装置,其特征在于,所述种子过滤模块包括数组生成子模块,用于读入所述种子站点URL至数组中,对所述数组进行排序;站点过滤子模块,用于提取某个URL的站点参数,判断所述数组中是否包含所述站点参数,如果是,则保留所述URL;如果否,则去除所述URL。24、如权利要求16所述的装置,其特征在于,还包括数量统计模块,用于统计所述正则表达式匹配的URL数量;正则表达式筛选模块,用于在所述URL数量小于预设过滤阈值时,删除所述正则表达式。全文摘要本发明公开了一种定向抓取页面资源的方法,包括依据种子站点URL预先抓取符合数量阈值的页面;在所述预抓取页面中确定特征页面;生成概括所述特征页面URL的正则表达式;将所述种子站点URL与所述正则表达式进行匹配,并将满足匹配条件的种子站点URL保留为抓取目标URL;依据所述抓取目标URL抓取页面。本发明可以有效提高页面资源抓取的收获率与招回率,从而更好地帮助人们从互联网上大范围、高效率、高精度地获取所需的信息。文档编号G06F17/30GK101452463SQ200710196590公开日2009年6月10日申请日期2007年12月5日优先权日2007年12月5日发明者叶勤勇,涛周,郑小林,陈德人申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1