CN104809182A - 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 - Google Patents

基于动态可分裂Bloom Filter的网络爬虫URL去重方法 Download PDF

Info

Publication number
CN104809182A
CN104809182A CN201510185467.2A CN201510185467A CN104809182A CN 104809182 A CN104809182 A CN 104809182A CN 201510185467 A CN201510185467 A CN 201510185467A CN 104809182 A CN104809182 A CN 104809182A
Authority
CN
China
Prior art keywords
bloom filter
url
dynamically
blade
divide
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.)
Granted
Application number
CN201510185467.2A
Other languages
English (en)
Other versions
CN104809182B (zh
Inventor
杨鹏
袁志伟
刘旋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201510185467.2A priority Critical patent/CN104809182B/zh
Publication of CN104809182A publication Critical patent/CN104809182A/zh
Application granted granted Critical
Publication of CN104809182B publication Critical patent/CN104809182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法,该方法的基础是一个动态可分裂Bloom Filter(简记DSBF),它与Interner Archive爬虫和Apoide爬虫中均匀负担URL存取任务的固定结构Bloom Filter不同,而是具有可按需灵活分裂成多层的动态可扩展结构。基于动态可分裂Bloom Filter实现网络爬虫URL去重,既可保证当已处理的URL数目不断增大时,仍然能够把Bloom Filter的假阳性误判率控制在给定范围内,又能将让Bloom Filter具有易于分布实现的灵活存储结构,从而更加适合于构造大规模、分布式、多网络爬虫的并行处理环境,支持互联网海量网页信息的高效采集和处理。

Description

基于动态可分裂Bloom Filter的网络爬虫URL去重方法
技术领域
本发明涉及一种网络爬虫的URL去重方法,该方法可用于实现大规模、分布式的高性能网络爬虫应用,具体是一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法,属于互联网技术领域。
背景技术
网络爬虫(Web Crawler)是很多互联网信息采集系统的重要组成部分,它以网页的URL基础,能够依据一定的规则自动爬行互联网中的网页。由于互联网中的URL数量数以亿计,并且不同URL之间相互链接,所以为了避免重复爬行相同的URL,网络爬虫在爬行过程中需要判断当前待爬行URL是否已经被爬行过,该过程称为URL去重。实现URL去重的关键在于,如何将已经爬行过的URL信息存储到一个集合中,并保证该集合具有良好的查询性能。URL去重是否高效是影响信息采集系统效率的一个关键因素。
Bloom Filter是支持URL去重的一种有效解决方案。经典的Bloom Filter由1个二进制数组和k个哈希映射函数(记为MapHash)组成,其结构如图1所示,它可用来快速检测一个元素是否属于给定集合。图1是一个经典的Bloom Filter,其二进制数组长度为12,用到3个哈希映射函数,当向该Bloom Filter插入xi时,首先用3个哈希映射函数对xi进行3次哈希计算,假定计算结果分别是0、3和6,则只需要把二进制数组中的第0位、3位和6位置为1;插入xj的过程与之类似。当查询xi时,同样用3个哈希映射函数对xi进行3次哈希计算,然后查询二进制数组中的相应位是否都是1。由图可知,xi在该Bloom Filter之中,而xk不在该Bloom Filter之中。若一个Bloom Filter的二进制数组长度为m,则它的每一个哈希映射函数的值域都是S={0,1,2,…,m-1},哈希映射函数可以直接通过常见的哈希函数(如MD5、SHA、MurmurHash、BKDRHash等)对m取模来实现。一般在向一个数据集合插入某数据元素时,对应地在Bloom Filter中使用k个哈希映射函数对该数据元素进行k次哈希计算,并且将二进制数组中以这k个哈希计算结果为下标的所有二进制位置为1。那么,当查询某数据元素是否在数据集合中时,只需使用k个哈希映射函数对该数据元素进行k次哈希计算,然后查看Bloom Filter的二进制数组中与这k个哈希计算结果对应的二进制位的取值,只有当它们都为1时才判定该数据元素在集合中。总的来说,Bloom Filter是一个空间效率和时间效率都很高的数据结构。但是,如果某个元素经k次哈希计算结果所对应的k个二进制位,已经被集合中之前插入的其他元素置为1时,查询该元素时会发生假阳性误判。Bloom Filter的假阳性误判率的大小,主要取决于集合的大小、二进制数组的长度以及哈希映射函数的个数等因素。
目前已有的一些基于Bloom Filter的URL去重方案,在效率、可扩展性和性能等方面存在欠缺。如Internet Archive爬虫使用32KB的Bloom Filter来存储每个网站的所有URL。Apoide爬虫使用8KB的Bloom Filter来存储每个网站的所有URL,并且根据网站域名的哈希值来决定某一条URL具体存储在哪一个Bloom Filter中。总的来说,这些方案中的Bloom Filter组织方式相对比较固定。对于一些大型门户网站(如新浪网、新华网等)而言,由于该域名下的URL数目众多,常常难以使用一个长度有限的固定大小Bloom Filter来存储;而对于一些小规模的网站,采用过大的Bloom Filter势必引起存储空间的浪费。另外,一些对处理性能要求较高的信息采集系统,往往会在网络分布环境中同时部署大量网络爬虫进行网页的并行爬行。针对这种应用场景中的URL去重问题,现有的Bloom Filter及它的一些改进方案大多难以适应。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供了一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法。该方法的基础是一个动态可分裂Bloom Filter(简记DSBF),它与Interner Archive爬虫和Apoide爬虫中均匀负担URL存取任务的固定结构Bloom Filter不同,而是具有可按需灵活分裂成多层的动态可扩展结构。基于动态可分裂Bloom Filter实现网络爬虫URL去重,既可保证当已处理的URL数目不断增大时,仍然能够把Bloom Filter的假阳性误判率控制在给定范围内,又能将让Bloom Filter具有易于分布实现的灵活存储结构,从而更加适合于构造大规模、分布式、多网络爬虫的并行处理环境,支持互联网海量网页信息的高效采集和处理。
技术方案:一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法,包括:
(1)动态可分裂Bloom Filter采用树状的分层存储结构,动态可分裂BloomFilter中用到两种哈希函数,一种是经典Bloom Filter中的哈希映射函数,另一种是新引入的哈希定位函数(记为LocHash)。树根(记为第0层)中存放一个哈希定位函数。在除树根外的各层中,每一个叶结点中存放一个经典的Bloom Filter(称为叶片Bloom Filter),它用于记录网络爬虫已经爬取过的URL信息;每一个非叶结点中存放一个哈希定位函数,非叶结点通过它把URL进一步导向其下一层的对应子结点。在动态可分裂Bloom Filter中,为支持叶结点的灵活分裂,每个叶片Bloom Filter都会关联一个URL集合,它的元素是已经插入到该叶片Bloom Filter中的所有URL。基于动态可分裂Bloom Filter的网络爬虫URL去重方法主要涉及4种操作,包括初始化、插入过程、分裂过程和查询过程等。
(2)动态可分裂Bloom Filter的初始化过程。首先,根据待处理的URL数目的预估值,确定树的第一层结点的个数。计算方法如下:假设需要存储的URL个数为n,而每一个叶片Bloom Filter中的二进制数组长度是m,并且要求假阳性误判率低于f。则动态可分裂Bloom Filter的第一层的结点个数c:
      
第一层中每个叶片Bloom Filter在假阳性误判率不大于f的情况下,最多能存储的URL个数u为:
      
而每个叶片Bloom Filter所需的哈希映射函数个数k为:
      
接着,选用一个值域为{0,1,2,…,c-1}的哈希定位函数,将它存放在树的根结点。最后,在树的第一层中放置c个叶片Bloom Filter。
(3)动态可分裂Bloom Filter的插入过程。当网络爬虫把URL信息插入到动态可分裂Bloom Filter时,需要对URL进行h次(h≥1,h为树中从根结点到叶结点的路径长度)哈希定位计算,以确定该URL信息具体插入到哪一个叶片Bloom Filter中。具体的插入过程如下:首先,使用根结点的哈希定位函数对该URL进行哈希计算,以此判断该URL信息存储到根结点的哪一个子结点中。接着,判断该子结点是否为叶结点。如果是,则把该URL插入到与该叶片BloomFilter关联的URL集合中,同时通过哈希映射函数把该URL信息插入到叶片Bloom Filter的二进制数组中。如果不是,则使用该非叶结点的哈希定位函数继续上述过程,直至将该URL最终定位并插入到一个叶片Bloom Filter及其关联的URL集合为止。
(4)动态可分裂Bloom Filter的分裂过程。当动态可分裂Bloom Filter的某个叶片Bloom Filter(不妨记为结点l)存储的URL数量大于u时,将会使该叶片Bloom Filter的假阳性误判率超过f,因此需要对该叶结点l进行分裂。具体的分裂过程如下:首先,在待分裂结点l的下一层新增c个叶片Bloom Filter,并使它们成为结点l的子结点。接着,为待分裂结点l增加一个哈希定位函数。然后用该哈希定位函数对与结点l关联的URL集合中的所有URL重新进行哈希计算(再哈希),进而使这些URL各自定位并插入到结点l的具体对应子结点(叶片Bloom Filter)中。最后,删除待分裂结点l中存储的叶片Bloom Filter及其关联的URL集合,而只保留结点l中的哈希定位函数。
(5)动态可分裂Bloom Filter的查询过程。当网络爬虫向动态可分裂BloomFilter查询URL信息时,其执行过程类似于插入过程。首先,动态可分裂BloomFilter将对输入的待查询URL进行h次(h≥1)哈希定位计算,以确定该URL信息具体存储在哪一个叶片Bloom Filter中。然后,再按照经典Bloom Filter的查询方法,在该叶片Bloom Filter中对URL执行具体的查询操作。
(6)哈希定位函数的选取。动态可分裂Bloom Filter按树结构组织,它使用哈希定位函数来确定一个URL具体存储在树的哪个结点中。为了使树的每一个叶片Bloom Filter尽量均匀地负担存储任务,应该在不同层中选用不同的哈希定位函数(可以从MD5、SHA、MurmurHash、BKDRHash等哈希函数中分别选择),以避免在各层中出现过于类似的哈希结果;但在同一层中,非叶结点的哈希定位函数可以相同。与哈希映射函数的实现方式类似,哈希定位函数也可以通过常见的哈希函数对c取模来实现。通常m远大于c(例如,当要求误判率低于万分之一时,如果要存储100万条URL,则m的大小至少为2×107,而c一般不会超过100),所以哈希定位函数和哈希映射函数可以选用相同的哈希函数作为基础,再分别通过对c取模和对m取模来实现。
有益效果:动态可分裂Bloom Filter不仅保持了经典Bloom Filter的优点,具有优秀的时间效率和空间效率;而且它所采用的树状存储结构,使它可按需灵活分裂成多层来动态扩展存储能力。基于动态可分裂Bloom Filter的网络爬虫URL去重方法,通过把URL去重任务均匀地分摊到多个叶片Bloom Filter,更加适合于构造大规模、分布式、多网络爬虫的并行处理环境,支持互联网海量网页信息的高效采集和处理。
附图说明
图1是一个经典的Bloom Filter;
图2是经初始化得到的一个树结构的动态可分裂Bloom Filter;
图3是正处在分裂过程中的动态可分裂Bloom Filter,其中发生分裂的是第一层的第4个结点,记为DSBF(root,3),正在分裂的结点DSBF(root,3)中,既保留有原先的叶片Bloom Filter,同时也新增了用于对第二层分裂出的5个结点进行定位的哈希定位函数,记为LocHash(root,3)
图4是分裂过程结束后的动态可分裂Bloom Filter,它的结点DSBF(root,3)中存储了哈希定位函数LocHash(root,3),在后续操作中,所有从上一层定位到结点DSBF(root,3)的URL,都将再经过哈希定位函数LocHash(root,3)进行哈希计算,然后被继续导向结点DSBF(root,3)的下一层子结点。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
基于动态可分裂Bloom Filter的网络爬虫URL去重方法,包括:
(1)首先要构造一个动态可分裂Bloom Filter,它的各个叶片Bloom Filter的二进制数组采用Redis数据库进行存储。Redis是读写性能非常优越的内存数据库,但在存储的内容接近或超过内存大小时会性能骤降。所以,先根据网络爬虫应用的规模和特征,确定适合叶片Bloom Filter的二进制数组的长度m,使之小于运行网络爬虫的计算机的内存大小。动态可分裂Bloom Filter采用树状的分层存储结构,如图2和图4所示。
图2是经初始化得到的一个树结构的动态可分裂Bloom Filter。树的根结点存放了一个哈希定位函数,树的第一层有5个叶片Bloom Filter,每个叶片BloomFilter是一个经典的Bloom Filter。网络爬虫在进行URL插入或查询时,必须先根据根结点中的哈希定位函数来确定该URL的具体存储位置。图4是分裂过程结束后的动态可分裂Bloom Filter,它的结点DSBF(root,3)中存储了哈希定位函数LocHash(root,3)。在后续操作中,所有从上一层定位到结点DSBF(root,3)的URL,都将再经过哈希定位函数LocHash(root,3)进行哈希计算,然后被继续导向结点DSBF(root,3)的下一层子结点。
(2)动态可分裂Bloom Filter的初始化过程。首先,根据待处理的URL数目的预估值,确定树的第一层结点的个数。计算方法如下:假设需要存储的URL个数为n,而每一个叶片Bloom Filter中的二进制数组长度是m,并且要求假阳性误判率低于f。则动态可分裂Bloom Filter的第一层的结点个数c:
      
第一层中每个叶片Bloom Filter在假阳性误判率不大于f的情况下,最多能存储的URL个数u为:
      
而每个叶片Bloom Filter所需的哈希映射函数个数k为:
      
接着,选用一个值域为{0,1,2,…,c-1}的哈希定位函数,将它存放在树的根结点。最后,在树的第一层中放置c个叶片Bloom Filter。
结合网络爬虫的应用需求和爬取策略,分析互联网中待爬网站及Web页面的组织规律,从而预估网络爬虫应用所需处理的URL数量n。然后,根据m、n、以及假阳性误判率上限f,按照技术方案中(2)的描述,计算出动态可分裂BloomFilter的第一层结点个数c、每个叶片Bloom Filter所需的哈希映射函数个数k以及它最大能存储的URL个数u等参数。
按此过程初始化得到的一个c=5的动态可分裂Bloom Filter如图2所示。
(3)根据参数m的值,选取k个值域为{0,1,2,…,m-1}的哈希函数,它们充当第一层c个叶片Bloom Filter的哈希映射函数。哈希映射函数可以通过常见的哈希函数(如MD5、SHA、MurmurHash、BKDRHash等)再对m取模实现。同时,为动态可分裂Bloom Filter的根结点选取一个值域为{0,1,2,…,c-1}的哈希定位函数,它可以通过常见的哈希函数再对c取模实现。
(4)依据上述m、n、f、c、k和u等参数,以及已经确定的k个哈希映射函数和1个哈希定位函数,初始化得到一个动态可分裂Bloom Filter,它的每个叶片Bloom Filter所关联的URL集合用一个数据库(如MySQL)实现。
(5)以通过前述方法构造的动态可分裂Bloom Filter作为基础,实现网络爬虫的URL去重。具体方法如下:当网络爬虫欲对一个URL进行爬取时,先在动态可分裂Bloom Filter中查询该URL,以判断它是否已经被爬取过。如果是,则略去该URL(即该URL被去重),并重新处理下一条URL。如果不是,表明该URL是在当前的动态可分裂Bloom Filter中未存储的新的URL,则此时必然已经到达某个叶片Bloom Filter。那么,接下来先判断该叶片Bloom Filter所存储的URL数量是否已达上限u。如果是,则先按照技术方案中(4)的描述对该叶片Bloom Filter进行分裂,再按照技术方案中(3)的描述,将URL插入到分裂后的动态可分裂Bloom Filter中。如果不是,则直接按照技术方案中(3)的描述,将URL插入到该叶片Bloom Filter中。
(6)当在网络分布环境使用多个网络爬虫进行网页并行采集时,只需按照动态可分裂Bloom Filter采用适当的分布策略,比如让多个叶片Bloom Filter(及其关联URL集合)分别分布存储在多台计算机上,就可以让每个网络爬虫单独部署在一台计算机上。而在实施URL去重时,每个网络爬虫只需分别负责少数几个(一般是一个)叶片Bloom Filter及其关联URL集合(由数据库实现)的相关操作,这将大大提高URL去重的效率,并且让网络爬虫把更高比例的处理时间用于对网页的实际爬取、采集和分析等复杂处理。

Claims (8)

1.一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,包括如下步骤:
(1)首先要构造一个动态可分裂Bloom Filter,它的各个叶片Bloom Filter的二进制数组采用Redis数据库进行存储,根据网络爬虫应用的规模和特征,确定适合叶片Bloom Filter的二进制数组的长度m,使之小于运行网络爬虫的计算机的内存大小;
(2)结合网络爬虫的应用需求和爬取策略,分析互联网中待爬网站及Web页面的组织规律,从而预估网络爬虫应用所需处理的URL数量n;然后,根据m、n、以及假阳性误判率上限f,计算出动态可分裂Bloom Filter的第一层结点个数c、每个叶片Bloom Filter所需的哈希映射函数个数k以及它最大能存储的URL个数u;
(3)根据参数m的值,选取k个值域为{0,1,2,…,m-1}的哈希函数,它们充当第一层c个叶片Bloom Filter的哈希映射函数;同时,为动态可分裂Bloom Filter的根结点选取一个值域为{0,1,2,…,c-1}的哈希定位函数,它可以通过哈希函数再对c取模实现;
(4)依据上述m、n、f、c、k和u参数,以及已经确定的k个哈希映射函数和1个哈希定位函数,初始化得到一个动态可分裂Bloom Filter,它的每个叶片Bloom Filter所关联的URL集合用一个数据库实现;
(5)以动态可分裂Bloom Filter作为基础,实现网络爬虫的URL去重;
(6)当在网络分布环境使用多个网络爬虫进行网页并行采集时,只需按照动态可分裂Bloom Filter采用分布策略,就可以让每个网络爬虫单独部署在一台计算机上;而在实施URL去重时,每个网络爬虫只需分别负责一个或几个叶片Bloom Filter及其关联URL集合的相关操作。
2.如权利要求1所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,动态可分裂Bloom Filter采用树状的分层存储结构,动态可分裂Bloom Filter中用到两种哈希函数,一种是Bloom Filter中的哈希映射函数,另一种是哈希定位函数;树根中存放一个哈希定位函数,在除树根外的各层中,每一个叶结点中存放一个Bloom Filter,称为叶片Bloom Filter,它用于记录网络爬虫已经爬取过的URL信息;每一个非叶结点中存放一个哈希定位函数,非叶结点通过它把URL进一步导向其下一层的对应子结点;在动态可分裂BloomFilter中,为支持叶结点的灵活分裂,每个叶片Bloom Filter都会关联一个URL集合,它的元素是已经插入到该叶片Bloom Filter中的所有URL。
3.如权利要求1所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,动态可分裂Bloom Filter的初始化过程中,首先,根据待处理的URL数目的预估值,确定树的第一层结点的个数;计算方法如下:假设需要存储的URL个数为n,而每一个叶片Bloom Filter中的二进制数组长度是m,并且要求假阳性误判率低于f;则动态可分裂Bloom Filter的第一层的结点个数c:
第一层中每个叶片Bloom Filter在假阳性误判率不大于f的情况下,最多能存储的URL个数u为:
而每个叶片Bloom Filter所需的哈希映射函数个数k为:
接着,选用一个哈希定位函数,将它存放在树的根结点;最后,在树的第一层中放置c个叶片Bloom Filter。
4.如权利要求1所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,实现网络爬虫的URL去重的具体方法如下:当网络爬虫欲对一个URL进行爬取时,先在动态可分裂Bloom Filter中查询该URL,以判断它是否已经被爬取过;如果是,则略去该URL(即该URL被去重),并重新处理下一条URL;如果不是,表明该URL是在当前的动态可分裂Bloom Filter中未存储的新的URL,则此时必然已经到达某个叶片Bloom Filter;那么,接下来先判断该叶片Bloom Filter所存储的URL数量是否已达上限u;如果是,则先对该叶片Bloom Filter进行分裂,再将URL插入到分裂后的动态可分裂Bloom Filter中;如果不是,则直接将URL插入到该叶片Bloom Filter中。
5.如权利要求4所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,当网络爬虫把URL信息插入到动态可分裂Bloom Filter时,需要对URL进行h次哈希定位计算,以确定该URL信息具体插入到哪一个叶片Bloom Filter中;具体的插入过程如下:首先,使用根结点的哈希定位函数对该URL进行哈希计算,以此判断该URL信息存储到根结点的哪一个子结点中;接着,判断该子结点是否为叶结点;如果是,则把该URL插入到与该叶片BloomFilter关联的URL集合中,同时通过哈希映射函数把该URL信息插入到叶片Bloom Filter的二进制数组中;如果不是,则使用该非叶结点的哈希定位函数继续上述过程,直至将该URL最终定位并插入到一个叶片Bloom Filter及其关联的URL集合为止。
6.如权利要求4所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,动态可分裂Bloom Filter的分裂过程中,当动态可分裂BloomFilter的某个叶片Bloom Filter(不妨记为结点l)存储的URL数量大于u时,将会使该叶片Bloom Filter的假阳性误判率超过f,因此需要对该叶结点l进行分裂;具体的分裂过程如下:首先,在待分裂结点l的下一层新增c个叶片BloomFilter,并使它们成为结点l的子结点;接着,为待分裂结点l增加一个哈希定位函数;然后用该哈希定位函数对与结点l关联的URL集合中的所有URL重新进行哈希计算(再哈希),进而使这些URL各自定位并插入到结点l的具体对应子结点中;最后,删除待分裂结点l中存储的叶片Bloom Filter及其关联的URL集合,而只保留结点l中的哈希定位函数。
7.如权利要求1所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,当网络爬虫向动态可分裂Bloom Filter查询URL信息时,其执行过程类似于插入过程;首先,动态可分裂Bloom Filter将对输入的待查询URL进行h次哈希定位计算,以确定该URL信息具体存储在哪一个叶片BloomFilter中;然后,再按照经典Bloom Filter的查询方法,在该叶片Bloom Filter中对URL执行具体的查询操作。
8.如权利要求1所述的基于动态可分裂Bloom Filter的网络爬虫URL去重方法,其特征在于,动态可分裂Bloom Filter按树结构组织,它使用哈希定位函数来确定一个URL具体存储在树的哪个结点中;为了使树的每一个叶片BloomFilter尽量均匀地负担存储任务,应该在不同层中选用不同的哈希定位函数,以避免在各层中出现过于类似的哈希结果;但在同一层中,非叶结点的哈希定位函数可以相同;与哈希映射函数的实现方式类似,哈希定位函数也可以通过常见的哈希函数对c取模来实现;通常m远大于c,所以哈希定位函数和哈希映射函数可以选用相同的哈希函数作为基础,再分别通过对c取模和对m取模来实现。
CN201510185467.2A 2015-04-17 2015-04-17 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 Active CN104809182B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510185467.2A CN104809182B (zh) 2015-04-17 2015-04-17 基于动态可分裂Bloom Filter的网络爬虫URL去重方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510185467.2A CN104809182B (zh) 2015-04-17 2015-04-17 基于动态可分裂Bloom Filter的网络爬虫URL去重方法

Publications (2)

Publication Number Publication Date
CN104809182A true CN104809182A (zh) 2015-07-29
CN104809182B CN104809182B (zh) 2016-08-17

Family

ID=53694004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510185467.2A Active CN104809182B (zh) 2015-04-17 2015-04-17 基于动态可分裂Bloom Filter的网络爬虫URL去重方法

Country Status (1)

Country Link
CN (1) CN104809182B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096008A (zh) * 2016-06-23 2016-11-09 北京工业大学 一种用于金融仓单风控的网络爬虫方法
CN106570025A (zh) * 2015-10-10 2017-04-19 北京国双科技有限公司 一种数据过滤的方法及装置
CN106886602A (zh) * 2017-03-02 2017-06-23 上海斐讯数据通信技术有限公司 一种应用爬取方法及系统
CN107798106A (zh) * 2017-10-31 2018-03-13 广东思域信息科技有限公司 一种分布式爬虫系统中的url去重方法
CN107844527A (zh) * 2017-10-13 2018-03-27 平安科技(深圳)有限公司 网页地址去重方法、电子设备及计算机可读存储介质
CN108628871A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于链接特征的链接去重方法
CN108804242A (zh) * 2018-05-23 2018-11-13 武汉斗鱼网络科技有限公司 一种数据计数去重方法、系统、服务器及存储介质
CN108874941A (zh) * 2018-06-04 2018-11-23 成都知道创宇信息技术有限公司 基于卷积特征和多重哈希映射的大数据url去重方法
CN109635182A (zh) * 2018-12-21 2019-04-16 全通教育集团(广东)股份有限公司 基于教育信息主题的并行化数据跟踪方法
CN111666267A (zh) * 2019-03-05 2020-09-15 国家计算机网络与信息安全管理中心 一种数据清洗方法、装置及终端设备
CN111930923A (zh) * 2020-07-02 2020-11-13 上海微亿智造科技有限公司 布隆过滤器系统及过滤方法
CN112422707A (zh) * 2020-10-22 2021-02-26 北京安博通科技股份有限公司 域名数据挖掘方法、装置及Redis服务器
CN113055829A (zh) * 2021-03-16 2021-06-29 深圳职业技术学院 一种网络广播信息的隐私保护方法、装置及可读存储介质
US11741258B2 (en) 2021-04-16 2023-08-29 International Business Machines Corporation Dynamic data dissemination under declarative data subject constraints

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663058A (zh) * 2012-03-30 2012-09-12 华中科技大学 一种分布式网络爬虫系统中的url去重方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663058A (zh) * 2012-03-30 2012-09-12 华中科技大学 一种分布式网络爬虫系统中的url去重方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐娜等: "基于 Bloom Filter 的网页去重算法", 《微电脑应用》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570025B (zh) * 2015-10-10 2020-09-11 北京国双科技有限公司 一种数据过滤的方法及装置
CN106570025A (zh) * 2015-10-10 2017-04-19 北京国双科技有限公司 一种数据过滤的方法及装置
CN106096008B (zh) * 2016-06-23 2021-01-05 北京工业大学 一种用于金融仓单风控的网络爬虫方法
CN106096008A (zh) * 2016-06-23 2016-11-09 北京工业大学 一种用于金融仓单风控的网络爬虫方法
CN106886602A (zh) * 2017-03-02 2017-06-23 上海斐讯数据通信技术有限公司 一种应用爬取方法及系统
CN108628871A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于链接特征的链接去重方法
CN107844527A (zh) * 2017-10-13 2018-03-27 平安科技(深圳)有限公司 网页地址去重方法、电子设备及计算机可读存储介质
CN107798106A (zh) * 2017-10-31 2018-03-13 广东思域信息科技有限公司 一种分布式爬虫系统中的url去重方法
CN108804242A (zh) * 2018-05-23 2018-11-13 武汉斗鱼网络科技有限公司 一种数据计数去重方法、系统、服务器及存储介质
CN108804242B (zh) * 2018-05-23 2022-03-22 武汉斗鱼网络科技有限公司 一种数据计数去重方法、系统、服务器及存储介质
CN108874941A (zh) * 2018-06-04 2018-11-23 成都知道创宇信息技术有限公司 基于卷积特征和多重哈希映射的大数据url去重方法
CN108874941B (zh) * 2018-06-04 2021-09-21 成都知道创宇信息技术有限公司 基于卷积特征和多重哈希映射的大数据url去重方法
CN109635182A (zh) * 2018-12-21 2019-04-16 全通教育集团(广东)股份有限公司 基于教育信息主题的并行化数据跟踪方法
CN111666267A (zh) * 2019-03-05 2020-09-15 国家计算机网络与信息安全管理中心 一种数据清洗方法、装置及终端设备
CN111930923A (zh) * 2020-07-02 2020-11-13 上海微亿智造科技有限公司 布隆过滤器系统及过滤方法
CN111930923B (zh) * 2020-07-02 2021-07-30 上海微亿智造科技有限公司 布隆过滤器系统及过滤方法
CN112422707A (zh) * 2020-10-22 2021-02-26 北京安博通科技股份有限公司 域名数据挖掘方法、装置及Redis服务器
CN113055829A (zh) * 2021-03-16 2021-06-29 深圳职业技术学院 一种网络广播信息的隐私保护方法、装置及可读存储介质
US11741258B2 (en) 2021-04-16 2023-08-29 International Business Machines Corporation Dynamic data dissemination under declarative data subject constraints

Also Published As

Publication number Publication date
CN104809182B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN104809182A (zh) 基于动态可分裂Bloom Filter的网络爬虫URL去重方法
US20190278783A1 (en) Compaction policy
CN102968498B (zh) 数据处理方法及装置
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
Ahn et al. ForestDB: A fast key-value storage system for variable-length string keys
CN102375853A (zh) 分布式数据库系统、在其中建立索引的方法和查询方法
CN1152365A (zh) 一种存储和检索数据的方法和一种存储器配置
CN104077423A (zh) 一种基于一致性散列的结构化数据存储、查询和迁移方法
Tang et al. Deferred lightweight indexing for log-structured key-value stores
CN103246549B (zh) 一种数据转存的方法及系统
CN107798106A (zh) 一种分布式爬虫系统中的url去重方法
Ibrahim et al. Intelligent data placement mechanism for replicas distribution in cloud storage systems
CN104424219A (zh) 一种数据文件的管理方法及装置
CN106156319A (zh) 可伸缩的分布式的资源描述框架数据存储方法及装置
CN102081649A (zh) 一种搜索电脑文件的方法及其系统
CN106709010A (zh) 一种基于海量小文件高效上传hdfs的方法及系统
Challa et al. DD-Rtree: A dynamic distributed data structure for efficient data distribution among cluster nodes for spatial data mining algorithms
CN107205024A (zh) 一种云存储系统中数据去重方法及系统
CN102646133B (zh) 基于元数据存储的二维表组织方法
CN102411632A (zh) 基于链表的内存数据库页式存储方法
CN105389394A (zh) 基于多个数据库集群的数据请求处理方法及装置
Prasad et al. Improving the performance of processing for small files in Hadoop: A case study of weather data analytics
CN106776617A (zh) 日志文件的保存方法和装置
CN104537016A (zh) 一种确定文件所在分区的方法及装置
He et al. SLC-index: A scalable skip list-based index for cloud data processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant