一种分布式网络爬虫的URL去重方法及其系统与流程

文档序号:17477392发布日期:2019-04-20 06:12阅读:497来源:国知局
一种分布式网络爬虫的URL去重方法及其系统与流程

本发明属于数据传输领域,特别是涉及一种分布式网络爬虫的url去重方法及其系统。



背景技术:

目前,网络爬虫常用的url去重方案有基于数据库的去重方案和基于内存链表的去重方案,这些方案在url库容量不大的情况下有不错的效果。但是,现有的分布式爬虫面向的url库容量通常非常大,需要url去重能够持久保持高效运作,而上述常用的url去重方案在爬虫程序运行较长时间后会有效率剧降或任务瘫痪的风险。现有技术中的url去重方法设计不够合理,亟需改进。



技术实现要素:

本发明的目的在于提供一种分布式网络爬虫的url去重方法及其系统,通过md5加密算法与树相结合的方式对url初步去重,再通过将初步去重的url依次遍历每个字母,根据字母对应的节点进行二次去重,解决了现有的网络爬虫抓取数据精确性和效率不足以及占用资源多的问题。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为一种分布式网络爬虫的url去重方法,包括如下步骤:

步骤s01:获取待抓取网页的url;

步骤s02:将获取的url进行16位md5压缩处理;

步骤s03:将生成的密文切割成16位数组;

步骤s04:根据磁盘符号查找方式将密文生成数组的转换为相应路径;

步骤s05:判断linkurl中是否存在相应的url;

若不存在,则url存储至资源库;

若存在,则删除该url;

步骤s06:对资源库中的url进行解密并动态插入改进广义表;

步骤s07:从动态广义表根节点出发,遍历待去重的url每个字母;

步骤s08:依次判断每个字母对应的节点是否存在;

若存在,则将该条url去重;

若不存在,则将该条url存储至待抓取队列。

优选地,所述步骤s02中,对url加密完成后以树的形式进行存储。

优选地,所述步骤s03中,密文切割成16位的数组a后,将数据a[0]的值与根节点下指向的节点值进行比较;若存在,则将找到的节点r[1]指向的下一个节点与a[1]相比较,依次比较直至a[15]比较结束。

优选地,所述步骤s07中,广义表中每个节点存储一个字母,遍历url每个字母时,若某一字母对应的广义表节点不存在,则需先创建该节点对应层上的root节点和该字母的对应节点后,返回继续遍历。

本发明为一种分布式网络爬虫的url去重系统,包括处理器和存储器,所述处理器依次与搜索模块、加密模块、转换模块、解密模块、插入模块、去重模块以及存储器电性连接;所述搜索模块,用于依次读取一条待处理网页的地址并传递至加密模块;所述加密模块,用于对获取的url并对url进行md5压缩加密处理;所述转换模块,用以根据磁盘符号将加密后生成的密文数组转换成相应路径;所述解密模块,用于对初步去重的url进行解密处理;所述插入模块,用于将解密完成的url插入广义表中;所述去重模块,用于根据广义表根节点遍历url每个字母进行二次去重。

本发明具有以下有益效果:

本发明通过md5加密算法与树相结合的方式对url初步去重,再通过将初步去重的url依次遍历每个字母,根据字母对应的节点进行二次去重,提升了网络爬虫抓取数据精确性和效率,降低了资源空间占有率。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种分布式网络爬虫的url去重方法步骤图;

图2为本发明的一种分布式网络爬虫的url去重系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1所示,本发明为一种分布式网络爬虫的url去重方法,包括如下步骤:

步骤s01:获取待抓取网页的url;

步骤s02:将获取的url进行16位md5压缩处理;

步骤s03:将生成的密文切割成16位数组;

步骤s04:根据磁盘符号查找方式将密文生成数组的转换为相应路径;

步骤s05:判断linkurl中是否存在相应的url;

若不存在,说明此url为新url,则将该url存储至资源库;

若存在,说明linkurl中已有相应的url,则删除该url;

步骤s06:对资源库中的url进行解密并动态插入改进广义表;

步骤s07:从动态广义表根节点出发,遍历待去重的url每个字母;

步骤s08:依次判断每个字母对应的节点是否存在;

若字母遍历到整个url的最后一个字母,依然存在对应的节点,则将该条url去重;

若不存在,则将该条url存储至待抓取队列。

其中,步骤s02中,对url加密完成后以树的形式进行存储。

其中,步骤s03中,密文切割成16位的数组a后,将数据a[0]的值与根节点下指向的节点值进行比较;若存在,则将找到的节点r[1]指向的下一个节点与a[1]相比较,依次比较直至a[15]比较结束;如果没有找到新建一个值为当前比较字符,后续节点值为下一字符的节点。

其中,步骤s07中,广义表中每个节点存储一个字母,遍历url每个字母时,若某一字母对应的广义表节点不存在,则需先创建该节点对应层上的root节点和该字母的对应节点后,返回继续遍历;如果这个字母对应的节点存在,则将这个节点转向head指针进入下一层继续执行遍历。

请参阅图2所示,本发明为一种分布式网络爬虫的url去重系统,包括处理器和存储器,所述处理器依次与搜索模块、加密模块、转换模块、解密模块、插入模块、去重模块以及存储器电性连接;所述搜索模块,用于依次读取一条待处理网页的地址并传递至加密模块;所述加密模块,用于对获取的url并对url进行md5压缩加密处理;所述转换模块,用以根据磁盘符号将加密后生成的密文数组转换成相应路径;所述解密模块,用于对初步去重的url进行解密处理;所述插入模块,用于将解密完成的url插入广义表中;所述去重模块,用于根据广义表根节点遍历url每个字母进行二次去重。

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1