CN112448991B - 一种地址去重方法、相关设备及存储介质 - Google Patents

一种地址去重方法、相关设备及存储介质 Download PDF

Info

Publication number
CN112448991B
CN112448991B CN201910839093.XA CN201910839093A CN112448991B CN 112448991 B CN112448991 B CN 112448991B CN 201910839093 A CN201910839093 A CN 201910839093A CN 112448991 B CN112448991 B CN 112448991B
Authority
CN
China
Prior art keywords
server
slave
address
address list
slave server
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.)
Active
Application number
CN201910839093.XA
Other languages
English (en)
Other versions
CN112448991A (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.)
SF Technology Co Ltd
Original Assignee
SF Technology Co Ltd
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 SF Technology Co Ltd filed Critical SF Technology Co Ltd
Priority to CN201910839093.XA priority Critical patent/CN112448991B/zh
Publication of CN112448991A publication Critical patent/CN112448991A/zh
Application granted granted Critical
Publication of CN112448991B publication Critical patent/CN112448991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开一种地址去重方法、相关设备及存储介质,方法包括:接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址;根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。本方案能够降低分布式系统因地址去重造成的性能影响。

Description

一种地址去重方法、相关设备及存储介质
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种地址去重方法、相关设备及存储介质。
背景技术
现有机制中,基于爬虫系统对地址进行爬取任务时,需要处理重复的地址,以避免和重复和无效的爬取任务。爬虫系统采用的架构是一个中心服务器和多个子服务器,由中心服务器负责处理重复的地址,然后将地址的爬取任务分配给这些子服务器进行爬去操作。
在对现有技术的研究和实践过程中,本申请实施例的发明人发现,中心服务器采用布隆过滤器、md5等方法处理重复的地址时,需要长时间消耗非常多的内存资源,并且,中心服务器需要保存历史爬取过的所有地址,当子服务器通过执行爬虫任务得到一个新地址后,会上报给中心服务器,中心服务器再基于保存的历史地址进行遍历查询,整个过程耗时较长,效率较低。
发明内容
本申请实施例提供了一种地址去重方法、相关设备及存储介质,能够提高分布式系统的地址去重效率和系统性能,以及对地址去重实现负载均衡。
第一方面中,本申请实施例提供一种地址去重方法,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一服务器和第二服务器;所述方法由所述中心服务器执行;所述方法包括:
接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;
向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;
接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址;
根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。
一种可能的设计中,所述根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务,包括:
接收所述分布式系统中的各从服务器上报的负载状态;
基于各从服务器的负载状态,向负载低于预设负载的第二从服务器分发所述待定地址列表;
接收至少一个所述第二从服务器上报的目标地址列表;
汇总从至少一个所述第二从服务器接收的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发所述多个爬虫任务。
一种可能的设计中,所述方法还包括:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
第二方面中,本申请实施例提供一种地址去重方法,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一服务器和第二服务器;所述方法由所述第一服务器执行;所述方法包括:
通过执行爬虫任务得到多个新地址;
对所述多个新地址进行去重操作,得到去重后的待定地址列表;
向所述中心服务器发送携带所述待定地址列表的去重请求;
从所述中心服务器接收并执行爬虫任务,所述爬虫任务为所述中心服务器基于至少一个第二从服务器发送的目标地址列表生成。
一种可能的设计中,所述对所述多个新地址进行去重操作之后,所述向所述中心服务器发送携带所述待定地址列表的去重请求之前,所述方法还包括:
基于区块链数据库向所述分布式系统中的第二从服务器发送更新请求;其中,所述更新请求用于请求将所述新地址更新至地址文件夹中,所述地址文件夹为基于区块链共享机制创建的文件夹;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于各第二从服务器发送的响应消息反馈的消息;
根据所述指示消息将所述新地址更新至所述地址文件夹。
第三方面中,本申请实施例提供一种地址去重方法,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一服务器和第二服务器;所述方法由所述第二服务器执行;所述方法包括:
接收所述中心服务器转发的第一从服务器确定的待定地址列表;
对所述待定地址列表进行去重,得到去重后的目标地址列表,并向中心服务器发送所述目标地址列表,所述目标地址列表用于所述中心服务器生成多个爬虫任务;
从所述中心服务器接收并执行爬虫任务。
一种可能的设计中,所述从所述中心服务器接收并执行爬虫任务之后,所述方法还包括:
从所述第一从服务器接收更新请求;
向所述中心服务器发送响应消息;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于多个所述第二从服务器发送的响应消息反馈的消息;
获取所述第一从服务器基于区块链机制更新后的地址文件夹;
基于更新后的地址文件夹对所述爬取任务得到的新地址进行去重。
第四方面中,本申请实施例提供一种服务器,具有实现对应于上述第一方面提供的地址去重方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述服务器包括:
收发模块,用于接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;
所述收发模块还用于向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址;
处理模块,用于根据各第二从服务器发送的目标地址列表生成多个爬虫任务,通过所述收发模块向所述分布式系统中的各从服务器分发爬虫任务。
一种可能的设计中,所述处理模块具体用于:
接收所述分布式系统中的各从服务器上报的负载状态;
基于各从服务器的负载状态,通过所述收发模块向负载低于预设负载的第二从服务器分发所述待定地址列表;
接收至少一个所述第二从服务器上报的目标地址列表;
所述处理模块具体用于:
汇总从至少一个所述第二从服务器接收的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发所述多个爬虫任务。
一种可能的设计中,所述处理模块还用于:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
通过所述收发模块接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,通过所述收发模块向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
第五方面中,本申请实施例提供一种服务器,具有实现对应于上述第二方面提供的地址去重方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述服务器包括:
收发模块,用于通过执行爬虫任务得到多个新地址;
处理模块,用于对所述多个新地址进行去重操作,得到去重后的待定地址列表;通过所述收发模块向所述中心服务器发送携带所述待定地址列表的去重请求;通过所述收发模块从所述中心服务器接收爬虫任务,并执行爬虫任务;所述爬虫任务为所述中心服务器基于至少一个第二从服务器发送的目标地址列表生成。
一种可能的设计中,所述处理模块在对所述多个新地址进行去重操作之后,所述收发模块向所述中心服务器发送携带所述待定地址列表的去重请求之前,还用于:
基于区块链数据库向所述分布式系统中的第二从服务器发送更新请求;其中,所述更新请求用于请求将所述新地址更新至地址文件夹中,所述地址文件夹为基于区块链共享机制创建的文件夹;
通过所述收发模块从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于各第二从服务器发送的响应消息反馈的消息;
根据所述指示消息将所述新地址更新至所述地址文件夹。
第六方面中,本申请实施例提供一种服务器,具有实现对应于上述第三方面提供的地址去重方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述服务器包括:
收发模块,用于接收所述中心服务器转发的第一从服务器确定的待定地址列表;
处理模块,用于对所述待定地址列表进行去重,得到去重后的目标地址列表,并向中心服务器发送所述目标地址列表,所述目标地址列表用于所述中心服务器生成多个爬虫任务;
所述收发模块还用于从所述中心服务器接收并执行爬虫任务。
一种可能的设计中,所述收发模块在所述处理模块执行爬虫任务之后,还用于:
从所述第一从服务器接收更新请求;
向所述中心服务器发送响应消息;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于多个所述第二从服务器发送的响应消息反馈的消息;
获取所述第一从服务器基于区块链机制更新后的地址文件夹;
所述处理模块还用于基于所述收发模块获取的更新后的地址文件夹对所述爬取任务得到的新地址进行去重。
本申请实施例又一方面提供了一种计算机设备,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行上述各方面所述的方法。
本申请实施例又一方面提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
相较于现有技术,本申请实施例提供的方案中,第一从服务器在本地对URL去重后,向中心服务器发送包括待定地址列的去重请求,向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;使得这些第二从服务器分别在本地对接收到的待定地址列表进行去重,然后将各自得到的目标地址表上报给中心服务器。中心服务器根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。可见,一方面中,中心服务器将去重操作分发给从服务器处理,能够对地址去重实现负载均衡,也无需专门配置硬件能力更强的中心服务器,能够减轻中心服务器的去重压力,避免长期占用服务器内存。另一方面中,通过这种负载均衡方式能够提高去重效率,各个从服务器负责一部分去重,各司其职,提高去重任务分配的合理性。
附图说明
图1为本申请实施例中分布式系统的一种网络拓扑示意图;
图2为本申请实施例中地址去重方法的一种流程示意图;
图3为本申请实施例中地址去重方法的一种流程示意图;
图4为本申请实施例中地址去重方法的一种流程示意图;
图5为本申请实施例中服务器的一种结构示意图;
图6为本申请实施例中服务器的一种结构示意图;
图7为本申请实施例中服务器的一种结构示意图;
图8为本申请实施例中执行地址去重方法的服务器的一种结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例供了一种地址去重方法、相关设备及存储介质,可用于爬虫系统中的服务器侧,服务器侧可用于对地址去重。一些实施方式中,如图1所示的分布式系统的一种网络拓扑示意图。图1中,分布式系统包括一个中心服务器和n个从服务器,n个从服务器中包括第一服务器和第二服务器。中心服务器不做具体的爬取任务,仅执行分发任务。从服务器执行具体的爬虫任务和地址去重操作。
参照图2,以下介绍本申请实施例所提供的一种地址去重方法,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一服务器和第二服务器。本申请实施例中的第一从服务器和第二从服务器仅表示相同属性的不同角色,当分布式系统中存在与第一从服务器执行相同或相似的操作的从服务器时,该从服务器即充当第一从服务器的角色;当分布式系统中存在与第二从服务器执行相同或相似的操作的从服务器时,该从服务器即充当第二从服务器的角色。当第一从服务器在某个阶段执行与第二从服务器执行相同或相似的操作时,该第一从服务器转换到第二从服务器的角色。同理,第二从服务器也可以转换到第一从服务器的角色,本申请实施例不对此作限定。本申请实施例包括:
201、所述第一从服务器通过执行爬虫任务得到多个新地址,对所述多个新地址进行去重操作,得到去重后的待定地址列表,向所述中心服务器发送携带所述待定地址列表的去重请求。
其中,新地址是指在本次执行爬取任务之前未被第一从服务器爬取过的地址。
所述待定地址列表包括至少一个新地址。本申请实施例中从服务器通过爬取任务爬取到的地址可为全球资源定位器(英文全称:Uniform Resource Locator,英文简称:URL)地址、二维码等网络链接或网络地址,本申请实施例不对地址的实现方式和表现形式作限定。
具体来说,所述第一从服务器通过变种方式进行批量去重,例如本次通过爬虫得到批量的100个URL,就直接将这100个URL去重,得到URL列表。
一些实施方式中,从服务器可以将上述新URL分别与本地维护的URL列表进行匹配,将与URL列表匹配的新URL进行去重,将于URL列表不匹配的新URL汇总为一个待定URL列表即可。
每个从服务器分别有自己的URL列表,记载各自爬取过的URL,假设分别有30个URL。假如该从服务器从某个网页中,获得了10个新URL,需要判断爬虫系统是否爬取过这10个URL,发现存在6条已经被爬取过,则从自己本机的已爬取过的URL列表进行去重,去重这6条。还有4条URL无法确定,可以确定该从服务器没有爬取过这4条URL,但是不能保证分布式系统中是否被其他从服务器爬取过,所以需要上报给中心服务器。
202、所述中心服务器接收所述第一从服务器的去重请求。
其中,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址。
一些实施方式中,中心服务器接收到多个从服务器上报的待定地址列表,汇总各从服务器的待定地址列表,
另一些实施方式中,中心服务器从第一从服务器接收待定地址列表后,将第一从服务器的待定地址列表分发给第二从服务器。第二从服务器是指所述分布式系统中除所述第一从服务器之外的至少一个从服务器。同样,第二服务器也会在爬取到新地址后,进行本地去重后,将待定地址列表发送给中心服务器,并由中心服务器分发给第一从服务器。
203、所述中心服务器向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表。
204、所述第二从服务器接收所述中心服务器转发的第一从服务器确定的待定地址列表,对所述待定地址列表进行去重,得到去重后的目标地址列表,并向中心服务器发送所述目标地址列表。
其中,所述目标地址列表用于所述中心服务器生成多个爬虫任务。
例如,所述目标地址列表包括4条URL地址,第二从服务器根据自己爬取过的URL列表,判断这4条URL地址自己是否爬取过,然后将判断结果返回给中心服务器。
考虑到第二从服务器可能接收到多个第一从服务器的待定URL列表,每个从服务器维护的本地URL列表也可能存在差异,那么需要分别针对每个待定URL列表分别判断。以第二从服务器接收到4个待定URL(例如URL1、URL2、URL3和URL4)为例,第二从服务器返回的判断结果可能存在以下几种情况:
从服务器A返回:URL1:已爬取;URL2:未爬取;URL3:未爬取;URL4:未爬取。
从服务器B返回:URL1:未爬取;URL2已爬取;URL3:未爬取;URL4:未爬取。
那么,中心服务器汇总多个第二从服务器(例如从服务器A和从服务器B)返回的判断结果后,可确定URL3和URL4未被分布式系统中的任何从服务器爬取过,则生成爬取任务,并分发到各从服务器,以便从服务器对URL3和URL4进行爬取。
一些实施方式中,除了通过上述遍历匹配的方式之外,第二从服务器还可以通过计算待定URL列表中URL的模糊值、以及本地URL列表中URL的模糊值,模糊值的计算主要包括目录结构解析、相应目录的Hash值计算和次方值计算,结合两个值后取余。利用Hash值和次方值的计算加快区分URL的相似性,因此能够有效提高去重的准确率。
一些实施方式中,第二从服务器还可以基于卷积特征和多重哈希函数映射的快速特征映射算法,建立一个位集合BitSet(包括卷积位集合和哈希位集合),即将每个URL都进行卷积运算和使用多个哈希函数进行映射,得到卷积运算输出的多个卷积值和哈希函数的输出,根据多个卷积值对卷积位集合进行赋值,根据哈希函数基于每一个字符的输出对哈希位集合赋值。将赋值后的BitSet作为URL的关键字或者标签,根据赋值后的BitSet去识别待定地址列表中的URL是否被第二从服务器爬取过。
一些实施方式中,第二从服务器将本地URL列表存储在布隆过滤器中。第二从服务器还可以,提取待定地址列表中URL的隐含特征,将URL的隐含特征与布隆过滤器进行比对,如果查询到布隆过滤器中未存储与隐含特征对应的特征,则标记该隐含特征对应的URL,最终识别出所述待定地址列表中所有的未被第二从服务器爬取过的新URL。所述URL特征能够匹配更准确的URL网页数据。通过这种方式,能够在对去重任务进行负载均衡的基础上进一步提高识别新URL的效率。
205、所述中心服务器接收各第二从服务器发送的目标地址列表,根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。
其中,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址。
在本申请实施例中,中心服务器可以将第一从服务器的待定地址列表分发给部分或全部的第二从服务器,具体可根据当前第二从服务器的负载状态决定分发的数量。具体来说,如图3所示,本申请实施例包括以下步骤:
301、分布式系统中的各从服务器(例如第二从服务器)实时的或者周期性的向中心服务器上报自身的负载状态。
302、中心服务器基于各从服务器的负载状态,向负载低于预设负载的第二从服务器分发所述待定地址列表。
303、接收到待定地址列表的第二从服务器基于本地保存的地址列表对所述待定地址列表进行去重,将去重后得到的目标地址列表上报至中心服务器。
304、中心服务器汇总各第二从服务器的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发多个爬虫任务。
其中,爬虫任务是指根据用户的需求定向获取所需要的资源内容,爬虫任务中包括地址、爬取时间、爬取顺序、爬取规则以及从服务器标识等信息。爬虫任务可以是以任务列表、json文件等方式呈现,本申请不对此作限定。
206、分布式系统中的各从服务器接收所述中心服务器发送的爬虫任务。
其中,接收到爬虫任务的从服务器可包括第一从服务器和第二从服务器中的至少一个,也可以不包括第一从服务器和第二从服务器,具体由中心服务器决策爬虫任务需要由分布式系统中的哪些从服务器承担,本申请实施例不对此作限定。从服务器接收到爬虫任务后,根据爬虫任务中的地址、爬取时间、爬取顺序和从服务器标识对地址对应的目标网页进行爬取,的得到目标网页的资源内容。
与现有机制相比,本申请实施例中,第一从服务器在本地对URL去重后,向中心服务器发送包括待定地址列的去重请求,向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;使得这些第二从服务器分别在本地对接收到的待定地址列表进行去重,然后将各自得到的目标地址表上报给中心服务器。中心服务器根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。可见,一方面中,中心服务器将去重操作分发给从服务器处理,能够对地址去重实现负载均衡,也无需专门配置硬件能力更强的中心服务器,能够减轻中心服务器的去重压力,避免长期占用服务器内存。另一方面中,通过这种负载均衡方式能够提高去重效率,各个从服务器负责一部分去重,各司其职,提高去重任务分配的合理性。
可选的,在本申请实施例的一些实施例中,考虑到各个从服务器本地维护的地址列表仅仅记载自身爬取过的地址,所以各从服务器本地维护的地址列表会存在差异,如果每个从服务器每获取一次新地址后就上报给中心服务器,然后由中心服务器将每个从服务器上报的待定地址列表分别分发给其他从服务器,这样会增加中心服务器与从服务器之间的信令流程,占用大量网络资源和硬件资源。所以还可以在分布式系统中引入区块链共享机制。
具体来说,基于区块链共享机制创建地址文件夹并保存在区块链数据库中,该地址文件夹为共享且防串改。如图4所示,本申请实施例包括:
401、所述中心服务器基于区块链共享机制创建地址文件夹并保存在区块链数据库中。
402、所述第一从服务器基于区块链数据库向所述分布式系统中的第二从服务器发送更新请求。
其中,所述更新请求用于请求将所述新地址更新至地址文件夹中,所述地址文件夹为基于区块链共享机制创建的文件夹。
403、所述第二从服务器从所述第一从服务器接收更新请求,向所述中心服务器发送响应消息。
其中,所述响应消息用于指示所述第二从服务器对所述第一从服务器更新所述地址文件夹的更新请求的响应。
404、所述中心服务器接收多个第二从服务器发送的响应消息,当确定预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息。
其中,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
405、所述第一从服务器从所述中心服务器接收指示消息,根据所述指示消息将所述新地址更新至所述地址文件夹。
406、从服务器(可以是分布式系统中的任意从服务器,例如为第一从服务器和第二从服务器)获取所述第一从服务器基于区块链机制更新后的地址文件夹,基于更新后的地址文件夹对所述爬取任务得到的新地址进行去重。
例如,第一从服务器在获取到新URL并对新URL进行去重操作后,基于区块链数据库向分布式系统中的第二从服务器发送更新请求,以请求将新URL更新至URL文件夹中。收到更新请求的第二从服务器均向第一从服务器和中心服务器发送响应消息。中心服务器确定超过预设比例(例如80%)的第二从服务器都同意本次更新URL文件夹的请求,那么中心服务器向各从服务器群发消息,以指示各第二从服务器将第一从服务器发获取的新URL更新至URL文件夹中。若第二从服务器获取到新URL,那么也可参考针对第一从服务器获取的新URL更新至URL文件夹的流程,不作赘述。
当第二从服务器接收到第一从服务器的待定地址列表后,可以直接访问区块链数据库中的URL文件夹,基于URL文件夹识别未被爬取过的新URL。
可见,基于区块链的共享机制管理地址文件夹,既提高去重效率,又能提高各从服务器未爬取的新地址的认知范围(因为每个从服务器的识别结果都是共享的)以及减轻中心服务器的负荷。
可选的,在本申请实施例的一些实施例中,为避免相同时间出现访问URL文件夹的并发情况,还可以设置访问URL文件夹的最大数量或者最大端口数量。
图1至图4中任一项所对应的实施例中所提及的任一技术特征也同样适用于本申请实施例中的图5-图8所对应的实施例,后续类似之处不再赘述。
以上对本申请实施例中一种地址去重方法进行说明,以下对执行上述地址去重方法的中心服务器、第一从服务器和第二从服务器分别进行介绍。
参阅图5,如图5所示的一种服务器50的结构示意图,其可应用于分布式系统。本申请实施例中的服务器50能够实现对应于上述图1所对应的实施例中所执行的地址去重方法的步骤。所述服务器50实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述服务器50可包括处理模块501和收发模块502,所述处理模块501和所述收发模块502的功能实现可参考图1所对应的实施例中所执行的操作,此处不作赘述。例如,所述处理模块501可用于控制所述收发模块502的收发、获取等操作。
一些实施方式中,所述收发模块502可用于接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;
所述收发模块502还用于向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址;
所述处理模块501可用于根据各第二从服务器发送的目标地址列表生成多个爬虫任务,通过所述收发模块向所述分布式系统中的各从服务器分发爬虫任务。
一些实施方式中,所述收发模块502具体用于:
接收所述分布式系统中的各从服务器上报的负载状态;
基于各从服务器的负载状态,通过所述收发模块向负载低于预设负载的第二从服务器分发所述待定地址列表;
接收至少一个所述第二从服务器上报的目标地址列表;
所述处理模块501具体用于:
汇总从至少一个所述第二从服务器接收的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发所述多个爬虫任务。
一些实施方式中,所述处理模块501还用于:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
通过所述收发模块接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,通过所述收发模块向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
与现有机制相比,本申请实施例中,所述收发模块502从第一从服务器接收包括待定地址列的去重请求,并向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;使得这些第二从服务器分别在本地对接收到的待定地址列表进行去重,然后所述收发模块502从第二从服务器接收目标地址表上报给中心服务器。所述处理模块501根据各第二从服务器发送的目标地址列表生成多个爬虫任务,提供所述收发模块502向所述分布式系统中的各从服务器分发爬虫任务。可见,一方面中,中心服务器将去重操作分发给从服务器处理,能够对地址去重实现负载均衡,也无需专门配置硬件能力更强的中心服务器,能够减轻中心服务器的去重压力,避免长期占用服务器内存。另一方面中,通过这种负载均衡方式能够提高去重效率,各个从服务器负责一部分去重,各司其职,提高去重任务分配的合理性。
参阅图6,如图6所示的服务器60的结构示意图,其可应用于分布式系统。本申请实施例中的服务器60能够实现对应于上述图1所对应的实施例中由第一从服务器所执行的地址去重方法的步骤。所述服务器60实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述服务器60可包括处理模块601和收发模块602,所述处理模块601和所述收发模块602的功能实现可参考图1所对应的实施例中所执行的操作,此处不作赘述。例如,所述处理模块601可用于控制所述收发模块602的收发、获取等操作。
一些实施方式中,所述收发模块602可用于通过执行爬虫任务得到多个新地址;
所述处理模块601可用于对所述多个新地址进行去重操作,得到去重后的待定地址列表;通过所述收发模块向所述中心服务器发送携带所述待定地址列表的去重请求;通过所述收发模块从所述中心服务器接收爬虫任务,并执行爬虫任务;所述爬虫任务为所述中心服务器基于至少一个第二从服务器发送的目标地址列表生成。
一些实施方式中,所述处理模块601在对所述多个新地址进行去重操作之后,所述收发模块向所述中心服务器发送携带所述待定地址列表的去重请求之前,还用于:
基于区块链数据库向所述分布式系统中的第二从服务器发送更新请求;其中,所述更新请求用于请求将所述新地址更新至地址文件夹中,所述地址文件夹为基于区块链共享机制创建的文件夹;
通过所述收发模块602从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于各第二从服务器发送的响应消息反馈的消息;
根据所述指示消息将所述新地址更新至所述地址文件夹。
与现有机制相比,本申请实施例中,所述处理模块601在本地对新地址去重后,提供所述收发模块602向中心服务器发送包括待定地址列的去重请求,向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;使得这些第二从服务器分别在本地对接收到的待定地址列表进行去重,然后将各自得到的目标地址表上报给中心服务器。中心服务器根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。可见,一方面中,中心服务器将去重操作分发给从服务器处理,能够对地址去重实现负载均衡,也无需专门配置硬件能力更强的中心服务器,能够减轻中心服务器的去重压力,避免长期占用服务器内存。另一方面中,通过这种负载均衡方式能够提高去重效率,各个从服务器负责一部分去重,各司其职,提高去重任务分配的合理性。
参阅图7,如图7所示的服务器70的结构示意图,其可应用于分布式系统。本申请实施例中的服务器70能够实现对应于上述图1所对应的实施例中由第二从服务器所执行的地址去重方法的步骤。所述服务器70实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述服务器70可包括处理模块701和收发模块702,所述处理模块701和所述收发模块702的功能实现可参考图1所对应的实施例中所执行的操作,此处不作赘述。例如,所述处理模块701可用于控制所述收发模块702的收发、获取等操作。
一些实施方式中,所述收发模块702可用于接收所述中心服务器转发的第一从服务器确定的待定地址列表;
所述处理模块701可用于对所述待定地址列表进行去重,得到去重后的目标地址列表,并向中心服务器发送所述目标地址列表,所述目标地址列表用于所述中心服务器生成多个爬虫任务;
所述收发模块702还用于从所述中心服务器接收并执行爬虫任务。可选的,所述收发模块可用于向所述中心服务器上报所述第二从服务器的负载状态,便于中心服务器根据各从服务器的负载状态分发爬虫任务,以实现负载均衡。
一些实施方式中,所述收发模块702在所述处理模块701执行爬虫任务之后,还用于:
从所述第一从服务器接收更新请求;
向所述中心服务器发送响应消息;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于多个所述第二从服务器发送的响应消息反馈的消息;
获取所述第一从服务器基于区块链机制更新后的地址文件夹;
所述处理模块701还用于基于所述收发模块702获取的更新后的地址文件夹对所述爬取任务得到的新地址进行去重。
与现有机制相比,本申请实施例中,所述收发模块702从中心服务器接收包括待定地址列,所述处理模块701在本地对接收到的待定地址列表进行去重,然后提供所述收发模块702将得到的目标地址表上报给中心服务器。使得中心服务器根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务。可见,一方面中,中心服务器将去重操作分发给从服务器处理,能够对地址去重实现负载均衡,也无需专门配置硬件能力更强的中心服务器,能够减轻中心服务器的去重压力,避免长期占用服务器内存。另一方面中,通过这种负载均衡方式能够提高去重效率,各个从服务器负责一部分去重,各司其职,提高去重任务分配的合理性。
上面从模块化功能实体的角度对本申请实施例中的网络认证服务器和终端设备进行了描述,下面从硬件处理的角度分别对本申请实施例中的网络认证服务器和终端设备进行描述。需要说明的是,在本申请实施例各实施例(包括图5、图6以及图7所示的各实施例)中所有的收发模块对应的实体设备可以为收发器,所有的处理模块对应的实体设备可以为处理器。图5、图6以及图7所示的各装置均可以具有如图8所示的结构,当其中一种装置具有如图8所示的结构时,图8中的处理器和收发器实现前述对应该装置的装置实施例提供的处理模块和收发模块相同或相似的功能,图8中的存储器存储处理器执行上述地址去重方法时需要调用的计算机程序。
例如,图5所示的装置可以具有如图5所示的结构,当图5所示的装置具有如图8所示的结构时,图8中的处理器和收发器能够实现前述对应该装置的装置实施例提供的处理模块501和收发模块502相同或相似的功能,图8中的中央存储器存储处理器执行上述地址去重方法时需要调用的计算机程序。在本申请实施例图5所示的实施例中的收发模块502所对应的实体设备可以为输入输出接口,处理模块501对应的实体设备可以为处理器。
又例如,图6所示的装置可以具有如图8所示的结构,当图6所示的装置具有如图8所示的结构时,图8中的处理器和收发器能够实现前述对应该装置的装置实施例提供的处理模块601和收发模602块相同或相似的功能,图8中的中央存储器存储处理器执行上述地址去重方法时需要调用的计算机程序。在本申请实施例图6所示的实施例中的收发模块602所对应的实体设备可以为输入输出接口,处理模块601对应的实体设备可以为处理器。
又例如,图7所示的装置可以具有如图8所示的结构,当图7所示的装置具有如图8所示的结构时,图8中的处理器和收发器能够实现前述对应该装置的装置实施例提供的处理模块801和收发模块802相同或相似的功能,图8中的存储器存储处理器执行上述地址去重方法时需要调用的计算机程序。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (8)

1.一种地址去重方法,其特征在于,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一从服务器和第二从服务器;所述方法由所述中心服务器执行;所述方法包括:
接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;
向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;
接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址,所述第二从服务器对所述待定地址列表去重,包括:
计算所述待定地址列表中URL的模糊值、以及本地URL列表中URL的模糊值,根据所述待定地址列表中URL的模糊值和本地URL列表中URL的模糊值对所述待定地址列表进行去重;或者,
基于卷积特征和多重哈希函数映射的快速特征映射算法,建立一个位集合BitSet,所述位集合BitSet包括卷积位集合和哈希位集合;
将所述待定地址列表中每个URL都进行卷积运算和使用多个哈希函数进行映射,得到卷积运算输出的多个卷积值和哈希函数的输出;
根据多个卷积值对卷积位集合进行赋值,根据哈希函数基于每一个字符的输出对哈希位集合赋值;
将赋值后的BitSet作为URL的关键字或者标签,根据赋值后的BitSet识别待定地址列表中的URL是否被第二从服务器爬取过;或者,
将本地URL列表存储在布隆过滤器中;
第二从服务器提取待定地址列表中URL的隐含特征;
将URL的隐含特征与布隆过滤器进行比对,若查询到布隆过滤器中未存储与隐含特征对应的特征,则标记该隐含特征对应的URL,识别出所述待定地址列表中所有的未被第二从服务器爬取过的新URL;
根据各第二从服务器发送的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发爬虫任务,包括:接收所述分布式系统中的各从服务器上报的负载状态;
基于各从服务器的负载状态,向负载低于预设负载的第二从服务器分发所述待定地址列表;
接收至少一个所述第二从服务器上报的目标地址列表;
汇总从至少一个所述第二从服务器接收的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发所述多个爬虫任务;所述方法还包括:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当确定预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
2.一种地址去重方法,其特征在于,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一从服务器和第二从服务器;所述方法由所述第一从服务器执行;所述方法包括:
通过执行爬虫任务得到多个新地址;
对所述多个新地址进行去重操作,得到去重后的待定地址列表,所述对所述多个新地址进行去重操作,包括:
计算所述多个新地址中URL的模糊值、以及本地URL列表中URL的模糊值,根据所述多个新地址中URL的模糊值和本地URL列表中URL的模糊值对所述多个新地址进行去重;或者,
基于卷积特征和多重哈希函数映射的快速特征映射算法,建立一个位集合BitSet,所述位集合BitSet包括卷积位集合和哈希位集合;
将所述多个新地址中每个URL都进行卷积运算和使用多个哈希函数进行映射,得到卷积运算输出的多个卷积值和哈希函数的输出;
根据多个卷积值对卷积位集合进行赋值,根据哈希函数基于每一个字符的输出对哈希位集合赋值;
将赋值后的BitSet作为URL的关键字或者标签,根据赋值后的BitSet识别多个新地址中的URL是否被第一从服务器爬取过;或者,
将本地URL列表存储在布隆过滤器中;
第一从服务器提取多个新地址中URL的隐含特征;
将URL的隐含特征与布隆过滤器进行比对,若查询到布隆过滤器中未存储与隐含特征对应的特征,则标记该隐含特征对应的URL,识别出所述多个新地址中所有的未被第一从服务器爬取过的新URL;
向所述中心服务器发送携带所述待定地址列表的去重请求;
从所述中心服务器接收并执行爬虫任务,所述爬虫任务为所述中心服务器基于至少一个第二从服务器发送的目标地址列表生成;所述方法还包括:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当确定预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
3.根据权利要求2所述的方法,其特征在于,所述对所述多个新地址进行去重操作之后,所述向所述中心服务器发送携带所述待定地址列表的去重请求之前,所述方法还包括:
基于区块链数据库向所述分布式系统中的第二从服务器发送更新请求;其中,所述更新请求用于请求将所述新地址更新至地址文件夹中,所述地址文件夹为基于区块链共享机制创建的文件夹;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于各第二从服务器发送的响应消息反馈的消息;
根据所述指示消息将所述新地址更新至所述地址文件夹。
4.一种地址去重方法,其特征在于,所述方法应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一从服务器和第二从服务器;所述方法由所述第二从服务器执行;所述方法包括:
接收所述中心服务器转发的第一从服务器确定的待定地址列表;
对所述待定地址列表进行去重,得到去重后的目标地址列表,所述对所述待定地址列表去重,包括:
计算所述待定地址列表中URL的模糊值、以及本地URL列表中URL的模糊值,根据所述待定地址列表中URL的模糊值和本地URL列表中URL的模糊值对所述待定地址列表进行去重;或者,
基于卷积特征和多重哈希函数映射的快速特征映射算法,建立一个位集合BitSet,所述位集合BitSet包括卷积位集合和哈希位集合;
将所述待定地址列表中每个URL都进行卷积运算和使用多个哈希函数进行映射,得到卷积运算输出的多个卷积值和哈希函数的输出;
根据多个卷积值对卷积位集合进行赋值,根据哈希函数基于每一个字符的输出对哈希位集合赋值;
将赋值后的BitSet作为URL的关键字或者标签,根据赋值后的BitSet识别待定地址列表中的URL是否被第二从服务器爬取过;或者,
将本地URL列表存储在布隆过滤器中;
第二从服务器提取待定地址列表中URL的隐含特征;
将URL的隐含特征与布隆过滤器进行比对,若查询到布隆过滤器中未存储与隐含特征对应的特征,则标记该隐含特征对应的URL,识别出所述待定地址列表中所有的未被第二从服务器爬取过的新URL;并向中心服务器发送所述目标地址列表,所述目标地址列表用于所述中心服务器生成多个爬虫任务;
从所述中心服务器接收并执行爬虫任务;所述方法还包括:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当确定预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
5.根据权利要求4所述的方法,其特征在于,所述从所述中心服务器接收并执行爬虫任务之后,所述方法还包括:
从所述第一从服务器接收更新请求;
向所述中心服务器发送响应消息;
从所述中心服务器接收指示消息,所述指示消息为所述中心服务器基于多个所述第二从服务器发送的响应消息反馈的消息;
获取所述第一从服务器基于区块链机制更新后的地址文件夹;
基于更新后的地址文件夹对所述爬取任务得到的新地址进行去重。
6.一种中心服务器,其特征在于,所述中心服务器应用于分布式系统,所述分布式系统包括中心服务器和多个从服务器,所述多个从服务器中包括第一从服务器和第二从服务器;所述中心服务器包括:
收发模块,用于接收所述第一从服务器的去重请求,所述去重请求包括待定地址列表,所述待定地址列表为所述第一从服务器对爬取的新地址去重得到的待定地址;
所述收发模块还用于向所述分布式系统中的至少一个所述第二从服务器发送所述待定地址列表;接收各第二从服务器发送的目标地址列表,所述目标地址列表为所述第二从服务器对所述待定地址列表去重得到的地址,所述第二从服务器对所述待定地址列表去重,包括:
计算所述待定地址列表中URL的模糊值、以及本地URL列表中URL的模糊值,根据所述待定地址列表中URL的模糊值和本地URL列表中URL的模糊值对所述待定地址列表进行去重;或者,
基于卷积特征和多重哈希函数映射的快速特征映射算法,建立一个位集合BitSet,所述位集合BitSet包括卷积位集合和哈希位集合;
将所述待定地址列表中每个URL都进行卷积运算和使用多个哈希函数进行映射,得到卷积运算输出的多个卷积值和哈希函数的输出;
根据多个卷积值对卷积位集合进行赋值,根据哈希函数基于每一个字符的输出对哈希位集合赋值;
将赋值后的BitSet作为URL的关键字或者标签,根据赋值后的BitSet识别待定地址列表中的URL是否被第二从服务器爬取过;或者,
将本地URL列表存储在布隆过滤器中;
第二从服务器提取待定地址列表中URL的隐含特征;
将URL的隐含特征与布隆过滤器进行比对,若查询到布隆过滤器中未存储与隐含特征对应的特征,则标记该隐含特征对应的URL,识别出所述待定地址列表中所有的未被第二从服务器爬取过的新URL;
处理模块,用于根据各第二从服务器发送的目标地址列表生成多个爬虫任务,通过所述收发模块向所述分布式系统中的各从服务器分发爬虫任务,包括:接收所述分布式系统中的各从服务器上报的负载状态;
基于各从服务器的负载状态,向负载低于预设负载的第二从服务器分发所述待定地址列表;
接收至少一个所述第二从服务器上报的目标地址列表;
汇总从至少一个所述第二从服务器接收的目标地址列表,基于汇总的目标地址列表生成多个爬虫任务,向所述分布式系统中的各从服务器分发所述多个爬虫任务;所述处理模块还用于:
基于区块链共享机制创建地址文件夹并保存在区块链数据库中;
接收多个第二从服务器发送的响应消息,所述响应消息用于指示对所述第一从服务器更新所述地址文件夹的更新请求的响应;
当确定预设比例的响应消息为同意所述第一从服务器更新所述地址文件夹时,向所述分布式系统中的从服务器发送指示消息,所述指示消息用于指示同意所述第一从服务器更新所述地址文件夹的更新请求。
7.一种计算机设备,其特征在于,所述计算机设备包括:
至少一个处理器、存储器和收发器;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1中由中心服务器执行的方法,或者执行如权利要求2和3中由第一从服务器执行的方法,或者执行如权利要求4和5中由第二从服务器执行的方法。
8.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1中由中心服务器执行的方法,或者执行如权利要求2和3中由第一从服务器执行的方法,或者执行如权利要求4和5中由第二从服务器执行的方法。
CN201910839093.XA 2019-09-05 2019-09-05 一种地址去重方法、相关设备及存储介质 Active CN112448991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910839093.XA CN112448991B (zh) 2019-09-05 2019-09-05 一种地址去重方法、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910839093.XA CN112448991B (zh) 2019-09-05 2019-09-05 一种地址去重方法、相关设备及存储介质

Publications (2)

Publication Number Publication Date
CN112448991A CN112448991A (zh) 2021-03-05
CN112448991B true CN112448991B (zh) 2023-06-13

Family

ID=74733439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910839093.XA Active CN112448991B (zh) 2019-09-05 2019-09-05 一种地址去重方法、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN112448991B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314463A (zh) * 2010-07-07 2012-01-11 北京瑞信在线系统技术有限公司 分布式爬虫系统及其提取网页数据的方法
CN102932448A (zh) * 2012-10-30 2013-02-13 工业和信息化部电信传输研究所 一种分布式网络爬虫的url排重系统及方法
CN105989022A (zh) * 2015-01-30 2016-10-05 北京陌陌信息技术有限公司 数据排重方法及系统
CN106598984A (zh) * 2015-10-16 2017-04-26 北京国双科技有限公司 网络爬虫的数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314463A (zh) * 2010-07-07 2012-01-11 北京瑞信在线系统技术有限公司 分布式爬虫系统及其提取网页数据的方法
CN102932448A (zh) * 2012-10-30 2013-02-13 工业和信息化部电信传输研究所 一种分布式网络爬虫的url排重系统及方法
CN105989022A (zh) * 2015-01-30 2016-10-05 北京陌陌信息技术有限公司 数据排重方法及系统
CN106598984A (zh) * 2015-10-16 2017-04-26 北京国双科技有限公司 网络爬虫的数据处理方法及装置

Also Published As

Publication number Publication date
CN112448991A (zh) 2021-03-05

Similar Documents

Publication Publication Date Title
AU2014212780B2 (en) Data stream splitting for low-latency data access
CN103019960B (zh) 分布式缓存方法及系统
Luo et al. Boafft: Distributed deduplication for big data storage in the cloud
US20140195551A1 (en) Optimizing snapshot lookups
CN106484820B (zh) 一种重命名方法、访问方法及装置
CN107704202B (zh) 一种数据快速读写的方法和装置
US11023538B2 (en) System and methods for dynamic generation of object storage datasets from existing file datasets
AU2013397053B2 (en) Content sharing method and social synchronization apparatus
CN104408044A (zh) 一种文件存取方法和系统
CN111651424B (zh) 一种数据处理方法、装置、数据节点及存储介质
CN113656501B (zh) 一种数据读取方法、装置、设备以及存储介质
CN109213604A (zh) 一种数据源的管理方法和装置
CN104636437A (zh) 一种事件通知方法、监听器的处理方法及装置
CN105005567B (zh) 兴趣点查询方法和系统
CN110737747A (zh) 一种数据操作方法、装置及系统
CN107305570B (zh) 一种数据检索方法及系统
CN112749145A (zh) 存储和访问数据的方法、设备和计算机程序产品
JP2013105289A (ja) 階層ファイルストレージに対する差分インデクシング方法
CN108154024B (zh) 一种数据检索方法、装置及电子设备
CN104636368A (zh) 数据检索方法、装置及服务器
CN113312539B (zh) 一种检索服务的提供方法、装置、设备和介质
JP2012194989A (ja) 検索方法、統合検索サーバ及びコンピュータプログラム
CN104424316A (zh) 一种数据存储方法、数据查询方法、相关装置和系统
CN105279166B (zh) 文件管理方法和系统
US9092338B1 (en) Multi-level caching event lookup

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant