CN104965933B - Url检测任务的分配方法、分配器及url检测系统 - Google Patents
Url检测任务的分配方法、分配器及url检测系统 Download PDFInfo
- Publication number
- CN104965933B CN104965933B CN201510460127.6A CN201510460127A CN104965933B CN 104965933 B CN104965933 B CN 104965933B CN 201510460127 A CN201510460127 A CN 201510460127A CN 104965933 B CN104965933 B CN 104965933B
- Authority
- CN
- China
- Prior art keywords
- url
- detection
- task
- web crawlers
- connectivity
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 579
- 238000000034 method Methods 0.000 title claims abstract description 68
- 239000000463 material Substances 0.000 claims abstract description 41
- 238000011897 real-time detection Methods 0.000 claims description 15
- 238000007689 inspection Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 210000004209 hair Anatomy 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种URL检测任务的分配方法、分配器及URL检测系统。其中,URL为物料的链接地址,该方法包括:将从数据库中获取的URL检测任务存储在URL任务列表中;接收多个网络爬虫发送的获取URL检测任务的请求;响应请求,根据预设的分配策略将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。本发明根据预设的分配策略将URL检测任务分配给网络爬虫,可以防止网络爬虫频繁请求任务,降低被用户防火墙屏蔽掉的风险。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种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示出了根据本发明一个实施例的URL检测任务的分配方法的流程图;
图2示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图;
图3示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图;
图4示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图;
图5示出了根据本发明一个实施例的URL检测任务的分配器的结构框图;
图6示出了根据本发明另一个实施例的URL检测任务的分配器的结构框图;
图7示出了根据本发明一个实施例的URL检测系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的URL检测任务的分配方法的流程图。其中,URL为物料的链接地址。这里的物料可以是创意或关键词。每一个物料都对应的有一个URL,通过点击该URL可以查看具体的内容,例如标题、描述等。如图1所示,该方法包括以下步骤:
步骤S100,将从数据库中获取的URL检测任务存储在URL任务列表中。
可选地,数据库为关系型数据库(MySQL),MySQL支持多线程服务,在处理事务和并发请求时性能有明显的优势,且数据存储于MySQL中,相对于其他类型的数据库更安全可靠,便于查询问题。
这里的URL检测任务具体是指需要进行连通性检测的URL。
具体地,分配器利用获取任务接口,从MySQL中获取URL检测任务,并将所获取的任务存储到URL任务列表中,分配器实时维护该要分配的URL任务列表,例如,将URL任务列表中的URL检测任务分配给网络爬虫进行连通性检测以及将所获取的任务存储到URL任务列表中。
步骤S101,接收多个网络爬虫发送的获取URL检测任务的请求。
具体地,多个网络爬虫以HTTP GET方式向分配器发送获取URL检测任务的请求,分配器接收多个网络爬虫发送的请求,该请求可携带有网络爬虫的IP地址。
可选地,网络爬虫包括:Java网络爬虫和PHP网络爬虫。
Java网络爬虫主要应用于Strom系统,其中,Strom系统是一种分布式的实时计算系统,在Strom系统中设置有2个机房,每个机房设有100个网络爬虫机器。
PHP网络爬虫代码为单文件编程,部署简单方便,分设在6-8个机房中,每个机房设有2-3个网络爬虫机器,且这些爬虫可以同时运行,其作为Java网络爬虫的备用爬虫,当Java网络爬虫出现问题时,可以由PHP网络爬虫代替Java网络爬虫,继续连通性检测工作。
步骤S102,响应请求,根据预设的分配策略将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
可选地,预设的分配策略限定了URL的分配条件,分配器在接收到多个网络爬虫发送的获取URL检测任务的请求后,对该请求作出响应,根据预设的IP地址限制条件和/或URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性其中,每个网络爬虫都具有一个IP地址,这里的IP地址限制条件主要是针对每个网络爬虫所具有的IP地址进行限制。
本步骤中,检测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变成了不连通的。
预设的分配策略包括:根据预设的IP地址限制条件和/或URL主域限制条件,以及分配给属于不同网段的另一网络爬虫。本领域技术人员应该理解,上述预设的分配策略可以单独使用,也可以结合使用。下面针对具体的预设的分配策略,详细介绍URL检测任务的分配方法。
图2示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图。在本实施例中,主要是根据预设的IP地址限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个。如图2所示,该方法包括以下步骤:
步骤S200,将从数据库中获取的URL检测任务存储在URL任务列表中。
具体地,优先将数据库中需要实时检测的URL检测任务存储在URL任务列表中。上面介绍了需实时检测的URL检测任务是还未对物料的URL进行过连通性检测的任务,而需巡查的URL检测任务是已对物料的URL进行过连通性检测且通过了连通性检测的物料的URL,这些URL需要定期巡查。因此,需实时检测的URL检测任务的检测等级高于需巡查的URL检测任务。
步骤S201,接收多个网络爬虫发送的获取URL检测任务的请求。
步骤S202,响应该请求,检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务,若是,则执行步骤S203;若否,则执行步骤S204。
在本步骤中,第一预设时间是根据网络爬虫处理所获取的URL检测任务所需时间进行设置的。例如,网络爬虫处理1000个URL检测任务所需的时间为1秒,则这里的第一预设时间即为1秒,1秒结束后,网络爬虫会再次向分配器发送获取URL检测任务的请求。
具体地,第一网络爬虫具有IP地址:127.0.0.3,检测在1秒内是否向具有该IP地址的第一网络爬虫分配过URL检测任务,更具体地,分配器中记录有已分配过URL检测任务的网络爬虫的IP地址,当网络爬虫向分配器发送获取URL检测任务的请求时,分配器根据请求中携带的IP地址,通过查询分配记录来判断是否向该爬虫分配过URL检测任务。这里仅仅是举例说明,本领域技术人员应该理解,检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务的方法并不限于上述实例中方法,本领域技术人员可以根据实际需要采用适当方法,在此不再赘述。
检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务,主要是为了防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数。
步骤S203,从URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,其中,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同。
具体地,本步骤中的预设数量根据网络爬虫的检测能力确定,可以是1000或10000个,这里的数值仅仅是举例说明,不应理解为对网络爬虫获取URL检测任务个数的具体限定。
在检测到在第一预设时间内,向第一网络爬虫分配过URL检测任务的情况下,分配器从URL任务列表中提取预设数量的URL检测任务分配给与第一网络爬虫的IP地址不同的第二网络爬虫,以供该网络爬虫检测URL的连通性。
步骤S204,从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
在检测到在第一预设时间内,未向第一网络爬虫分配过URL检测任务的情况下,分配器从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
步骤S205,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中。
网络爬虫在接收到分配分配的URL检测任务后,首先检测URL是否为恶意的链接地址,在检测到URL不是恶意的链接地址的情况下,通过URL多线程对该URL进行连通性检测。待检测完成后,统一将获取到的URL检测任务的检测结果提交到分配器。
具体地,网络爬虫以HTTP POST方式,将连通性检测结果发送给分配器,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,其中,连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数,状态码具体用于表示URL连通、URL不连通和URL为恶意的三种情况,URL不连通和URL为恶意的表示连通性检测失败,状态码:100表示URL连通,状态码:200表示URL不连通,状态码:300表示URL为恶意的。
步骤S206,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件。
URL检测日志文件记录有连通性检测结果的状态码,当状态码为200或300时,表明连通性检测失败,需要查询URL检测日志文件,这里主要是查询检测次数。
步骤S207,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则执行步骤S208;若否则检测结束。
一般情况下,在具有第一IP地址的第一网络爬虫对URL连通性检测失败的情况下,并不能确定无疑的认定该URL为不连通的,有可能是用户的防火墙将第一IP地址所属的整个网段屏蔽掉,因此还需要更换网段对该URL进行再次检测。
本步骤中,该预设阈值为预先设置的URL连通性检测次数,例如该预设阈值可以为3,即,URL检测任务连通性检测失败的次数大于3时,则停止对该URL检测任务进行连通性检测,并且可以认定该URL为不连通的。
具体地,通过判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于3,若小于或等于3,则可以继续对URL检测日志文件中记录的URL检测任务进行连通性检测,若大于3,则停止对URL检测日志文件中记录的URL检测任务进行连通性检测,检测结束。
步骤S208,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
在URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于3的情况下,将URL检测任务再次分配给属于不同网段的另一网络爬虫,例如具有IP地址:191.1.1.0的网络爬虫,由该网络爬虫对URL检测任务进行连通性检测。通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
步骤S209,将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
具体地,网络爬虫以HTTP POST方式,将连通性检测结果发送给分配器,接收网络爬虫返回的连通性检测结果,分配器在接收到网络爬虫发送的连通性检测结果后,通过RabbitMQ消息将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
根据本发明上述实施例提供的方法,通过检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务,若是,从URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,其中,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同,若否,从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性,可以防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
需要说明的是,本实施例中步骤S202、S203和S204可替换为其它的分配方式,例如现有技术的分配方式,替换后的方案,即更换网段对URL检测任务进行多次检测以提升检测结果精确性的方案,属于具有一定技术效果的独立方案,其也属于本发明所要保护的范围。
图3示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图。在本实施例中,主要是根据预设的URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个。图3所示实施例与图2所示实施例的区别在于URL检测任务的分配条件不同。如图3所示,该方法包括以下步骤:
步骤S300,将从数据库中获取的URL检测任务存储在URL任务列表中。
步骤S301,接收多个网络爬虫发送的获取URL检测任务的请求。
步骤S302,响应该请求,从URL任务列表中提取第一URL检测任务。
本步骤中的第一URL是待分配的URL检测任务,分配器响应网络爬虫的请求,从URL任务列表中提取出第一URL检测任务,其中,第一URL检测任务的主域为:www.abcd.com。
步骤S303,检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫,若是,则执行步骤S304;若否,则执行步骤S305。
第二预设时间定义了任一个网络爬虫请求某一主域的网站的间隔时间,例如,定义任一个网络爬虫可以请求某一主域的网站的间隔时间为3秒,即对该主域的网站相邻两次的请求间隔时间为3秒,具体为,在第一次请求结束后,需要等待3秒的时间,任一个网络爬虫才可以对该主域的网站进行第二次请求。
具体地,检测在3秒内是否将与第一URL具有相同主域:www.abcd.com的第二URL检测任务分配给任一个网络爬虫,若是,则说明已经将主域:www.abcd.com的第二URL检测任务分配给了任一个网络爬虫,需要等待3秒再将具有该主域的第一URL检测任务分配给网络爬虫;若否,则说明未将主域:www.abcd.com的URL检测任务分配给网络爬虫,可以将具有该主域的第一URL检测任务分配给网络爬虫。通过检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫,可以防止网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率。
步骤S304,从URL任务列表中提取第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,其中,第三URL的主域与第二URL的主域不同。
在检测到在第二预设时间3秒内将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫的情况下,从URL任务列表中提取与第二URL的主域:www.abcd.com不同的第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,例如,第三URL检测任务的主域可以是www.chdfj.com。
步骤S305,将第一URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
在检测到在第二预设时间3秒内未将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫的情况下,将主域为:www.abcd.com的第一URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
步骤S306,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中。
步骤S307,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件。
步骤S308,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则执行步骤S309;若否则检测结束。
步骤S309,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
步骤S310,将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
根据本发明上述实施例提供的方法,从URL任务列表中提取第一URL检测任务,检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫,若是,则从URL任务列表中提取第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,其中,第三URL的主域与第二URL的主域不同,若否,则将第一URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,通过检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫,可以防止网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
图4示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图。在本实施例中,主要是根据预设的IP地址限制条件和URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个。图4所示实施例与图2所示实施例的区别在于URL检测任务的分配条件不同。如图4所示,该方法包括以下步骤:
步骤S400,将从数据库中获取的URL检测任务存储在URL任务列表中。
步骤S401,接收多个网络爬虫发送的获取URL检测任务的请求。
步骤S402,响应该请求,从URL任务列表中提取第一URL检测任务。
本步骤中的第一URL是待分配的URL检测任务,分配器响应网络爬虫的请求,从URL任务列表中提取出第一URL检测任务,其中,第一URL检测任务的主域为:www.abcd.com。
步骤S403,检测在第三预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫,若是,则执行步骤S404;若否,则执行步骤S405。
第三预设时间定义了同一网络爬虫请求某一主域的网站的间隔时间,例如,定义同一网络爬虫可以请求某一主域的网站的间隔时间为2秒,即同一网络爬虫对该主域的网站相邻两次的请求间隔时间为2秒,具体为,在第一次请求结束后,需要等待2秒的时间,该网络爬虫才可以对该主域的网站进行第二次请求。
具体地,检测在2秒内是否将与第一URL具有相同主域:www.abcd.com的第二URL检测任务分配给具有IP地址:127.0.0.3的第一网络爬虫,若是,则说明已经将主域:www.abcd.com的第二URL检测任务分配给了第一网络爬虫,需要等待2秒再将具有该主域的URL检测任务分配给该网络爬虫,此时,可以将具有该主域的第一URL检测任务分配给具有不同IP地址的其他网络爬虫,或者向该网络爬虫分配具有其他主域的URL检测任务;若否,则说明未将主域:www.abcd.com的URL检测任务分配给该网络爬虫,可以将具有该主域的第一URL检测任务分配给该网络爬虫。通过检测在第三预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫,可以防止第一网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率。
步骤S404,将第一URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同。
在检测到在第三预设时间2秒内将与第一URL具有相同主域:www.abcd.com的第二URL检测任务分配给该第一网络爬虫的情况下,将第一URL检测任务分配给与第一网络爬虫的IP地址不同的第二网络爬虫,以供第二网络爬虫检测URL的连通性。
或者,从URL任务列表中提取第三URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性,第三URL的主域与第二URL的主域不同。例如,在检测到在第三预设时间2秒内将与第一URL具有相同主域:www.abcd.com的第二URL检测任务分配给该第一网络爬虫的情况下,从URL任务列表中提取与第二URL的主域:www.abcd.com不同的第三URL检测任务分配给该具有IP地址:127.0.0.3的第一网络爬虫,以供该网络爬虫检测URL的连通性,例如,第三URL检测任务的主域可以是www.chdfj.com。
步骤S405,将第一URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
在检测到在第三预设时间2秒内未将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫的情况下,将主域为:www.abcd.com的第一URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
步骤S406,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中。
步骤S407,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件。
步骤S408,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则执行步骤S409;若否则检测结束。
步骤S409,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
步骤S410,将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
根据本发明上述实施例提供的方法,从URL任务列表中提取第一URL检测任务,检测在第三预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫,若是,则将第一URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同,若否,则将第一URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性,通过检测在第三预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫,可以防止第一网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
图5示出了根据本发明一个实施例的URL检测任务的分配器的结构框图。其中,URL为物料的链接地址,如图5所示,该分配器500包括:存储模块501、接收模块502、分配模块503。
存储模块501,适于将从数据库中获取的URL检测任务存储在URL任务列表中。
接收模块502,适于接收多个网络爬虫发送的获取URL检测任务的请求。
分配模块503,适于响应请求,根据预设的分配策略将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
根据本发明上述实施例提供的分配器,将从数据库中获取的URL检测任务存储在URL任务列表中;接收多个网络爬虫发送的获取URL检测任务的请求;响应该请求,根据预设的分配策略将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,根据预设的分配策略将URL检测任务分配给网络爬虫,可以防止网络爬虫频繁请求任务,降低被用户防火墙屏蔽掉的风险。
图6示出了根据本发明另一个实施例的URL检测任务的分配器的结构框图。如图6所示,该分配器600包括:存储模块601、接收模块602、分配模块603、写入模块604、查询模块605、判断模块606、发送模块607。
存储模块601,适于将从数据库中获取的URL检测任务存储在URL任务列表中;
接收模块602,适于接收多个网络爬虫发送的获取URL检测任务的请求;
分配模块603,适于响应请求,根据预设的分配策略将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
可选地,分配模块603进一步适于:根据预设的IP地址限制条件和/或URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个。
可选地,分配模块603进一步适于:检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务;
若是,从URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同;
若否,从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫。
可选地,分配模块603进一步适于:从URL任务列表中提取第一URL检测任务;
检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫;
若是,则从URL任务列表中提取第三URL检测任务分配给多个网络爬虫中的其中一个,其中第三URL的主域与第二URL的主域不同;
若否,则将第一URL检测任务分配给多个网络爬虫中的其中一个。
可选地,分配模块603进一步适于:从URL任务列表中提取第一URL检测任务;
检测在第三预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫;
若是,将第一URL检测任务分配给第二网络爬虫,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同;或者,从URL任务列表中提取第三URL检测任务分配给第一网络爬虫,第三URL的主域与第二URL的主域不同;
若否,则将第一URL检测任务分配给第一网络爬虫。
可选地,接收模块602进一步适于:接收网络爬虫返回的连通性检测结果;
该分配器还包括:写入模块604,适于将连通性检测结果写入URL检测日志文件中。其中,连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数。
该分配器还包括:查询模块605,适于在URL检测任务的连通性检测结果表明连通性检测失败的情况下,查询URL检测日志文件。
判断模块606,适于判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值。
分配模块603进一步适于在URL检测日志文件中记录的URL检测任务连通性检测失败的次数小于或等于预设阈值的情况下,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
该分配器还包括:发送模块607,适于将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
根据本发明上述实施例提供的分配器,根据预设的IP地址限制条件和/或URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,可以防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数,或者,防止网络爬虫频繁请求同一主域的网站,或者,防止第一网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
图7示出了根据本发明一个实施例的URL检测系统的结构框图。如图7所示,该系统700包括:分配器600、网络爬虫701、数据库702、监控模块703、消息队列服务器704、订阅服务器705。
网络爬虫701,适于向分配器发送获取URL检测任务的请求,对获取到的URL进行连通性检测,以及返回连通性检测结果。其中,网络爬虫包括:Java网络爬虫和PHP网络爬虫。
具体地,通过创建的独立线程负责从分配器获取URL检测任务,通过HTTP POST方式将连通性检测结果提交给分配器。
根据配置条件创建指定数量的检测URL连通性的工作线程,主要是检测URL是否触犯网盾恶意和是否连通。URL恶意检测与网盾建立Socket UDP链接,Send URL检测任务进行检测,如果触犯恶意,会将URL状态记录在URL检测日志文件中。
数据库702,适于存储URL检测任务,以及连通性检测结果。其中,数据库为关系型数据库,URL检测日志文件存储于数据库中。
监控模块703,适于对网络爬虫的检测进度进行监控。
消息队列服务器704,适于存储连通性检测结果。
订阅者服务器705,适于通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
具体地,订阅者(MsgQueue)服务器监听订阅消息,当读到有订阅消息时,先对消息的正确性验证,然后再根据连通性检测结果计算出审核的状态,即URL连通、URL不连通、URL为恶意的。再获取URL对应的物料的数据列表,对物料进行上线或下架处理。
其中,数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务。
分配器600进一步适于:优先将数据库中需要实时检测的URL检测任务存储在URL任务列表中。
根据本发明上述实施例提供的分配器,根据预设的IP地址限制条件和/或URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个,可以防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数,或者,防止网络爬虫频繁请求同一主域的网站,或者,防止第一网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的URL检测任务的分配设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1、一种URL检测任务的分配方法,其中,所述URL为物料的链接地址,所述方法包括:
将从数据库中获取的URL检测任务存储在URL任务列表中;
接收多个网络爬虫发送的获取URL检测任务的请求;
响应所述请求,根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
A2、根据A1所述的方法,其中,所述根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个进一步包括:
根据预设的IP地址限制条件和/或URL主域限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个。
A3、根据A2所述的方法,其中,所述根据预设的IP地址限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个进一步包括:
检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务;
若是,从所述URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;
若否,从所述URL任务列表中提取预设数量的URL检测任务分配给所述第一网络爬虫。
A4、根据A2所述的方法,其中,所述根据预设的URL主域限制条件,将所述URL任务列表中的URL分配给所述多个网络爬虫中的其中一个进一步包括:
从所述URL任务列表中提取第一URL检测任务;
检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫;
若是,则从所述URL任务列表中提取第三URL检测任务分配给所述多个网络爬虫中的其中一个,其中第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述多个网络爬虫中的其中一个。
A5、根据A2所述的方法,其中,所述根据预设的IP地址限制条件和URL主域限制条件,将所述URL任务列表中的URL分配给所述多个网络爬虫中的其中一个进一步包括:
从所述URL任务列表中提取第一URL检测任务;
检测在第三预设时间内是否将与所述第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫;
若是,将所述第一URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;或者,从所述URL任务列表中提取第三URL检测任务分配给所述第一网络爬虫,第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述第一网络爬虫。
A6、根据A1所述的方法,其中,还包括:
接收所述网络爬虫返回的连通性检测结果,并将所述连通性检测结果写入URL检测日志文件中。
A7、根据A6所述的方法,其中,所述连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数。
A8、根据A6所述的方法,其中,在接收到所述网络爬虫返回的连通性检测结果,并将所述连通性检测结果写入URL检测日志文件中之后,所述方法还包括:
若所述URL检测任务的连通性检测结果表明连通性检测失败,查询所述URL检测日志文件;
判断所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则将所述URL检测任务再次分配给属于不同网段的另一网络爬虫。
A9、根据A6所述的方法,其中,在接收到所述网络爬虫返回的连通性检测结果之后,所述方法还包括:
将所述连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
A10、根据A1-A9任一项所述的方法,其中,所述数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务;
所述将从数据库中获取的URL检测任务存储在URL任务列表中进一步包括:
优先将所述数据库中需要实时检测的URL检测任务存储在所述URL任务列表中。
A11、根据A1-A9任一项所述的方法,其中,所述网络爬虫包括:Java网络爬虫和PHP网络爬虫。
A12、根据A1-A9任一项所述的方法,其中,所述数据库为关系型数据库。
本发明还公开了:B13、一种URL检测任务的分配器,其中,所述URL为物料的链接地址,所述分配器包括:
存储模块,适于将从数据库中获取的URL检测任务存储在URL任务列表中;
接收模块,适于接收多个网络爬虫发送的获取URL检测任务的请求;
分配模块,适于响应所述请求,根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
B14、根据B13所述的分配器,其中,所述分配模块进一步适于:
根据预设的IP地址限制条件和/或URL主域限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个。
B15、根据B14所述的分配器,其中,所述分配模块进一步适于:
检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务;
若是,从所述URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;
若否,从所述URL任务列表中提取预设数量的URL检测任务分配给所述第一网络爬虫。
B16、根据B14所述的分配器,其中,所述分配模块进一步适于:
从所述URL任务列表中提取第一URL检测任务;
检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫;
若是,则从所述URL任务列表中提取第三URL检测任务分配给所述多个网络爬虫中的其中一个,其中第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述多个网络爬虫中的其中一个。
B17、根据B14所述的分配器,其中,所述分配模块进一步适于:
从所述URL任务列表中提取第一URL检测任务;
检测在第三预设时间内是否将与所述第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫;
若是,将所述第一URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;或者,从所述URL任务列表中提取第三URL检测任务分配给所述第一网络爬虫,第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述第一网络爬虫。
B18、根据B13所述的分配器,其中,所述接收模块进一步适于:接收所述网络爬虫返回的连通性检测结果;
还包括:写入模块,适于将所述连通性检测结果写入URL检测日志文件中。
B19、根据B18所述的分配器,其中,所述连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数。
B20、根据B18所述的分配器,其中,所述分配器还包括:
查询模块,适于在所述URL检测任务的连通性检测结果表明连通性检测失败的情况下,查询所述URL检测日志文件;
判断模块,适于判断所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数是否小于或等于预设阈值;
所述分配模块进一步适于:在所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数小于或等于预设阈值的情况下,将所述URL检测任务再次分配给属于不同网段的另一网络爬虫。
B21、根据B18所述的分配器,其中,所述分配器还包括:发送模块,适于将所述连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
本发明还公开了:C22、一种URL检测系统,包括:B13-B21中任一项所述的分配器、网络爬虫、数据库、监控模块、消息队列服务器、订阅服务器。
所述网络爬虫,适于向所述分配器发送获取URL检测任务的请求,以及对获取到的URL进行连通性检测;
数据库,适于存储URL检测任务,以及连通性检测结果;
监控模块,适于对所述网络爬虫的检测进度进行监控;
消息队列服务器,适于存储连通性检测结果;
订阅者服务器,适于通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
C23、根据C22所述的系统,其中,所述数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务;
所述分配器进一步适于:优先将所述数据库中需要实时检测的URL检测任务存储在所述URL任务列表中。
C24、根据C22所述的系统,其中,所述网络爬虫包括:Java网络爬虫和PHP网络爬虫。
C25、根据C22所述的系统,其中,所述数据库为关系型数据库。
Claims (23)
1.一种URL检测任务的分配方法,其中,所述URL为物料的链接地址,所述方法包括:
将从数据库中获取的URL检测任务存储在URL任务列表中,其中,所述数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务;
接收多个网络爬虫发送的获取URL检测任务的请求;
响应所述请求,根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性;
其中,所述根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个进一步包括:
根据预设的IP地址限制条件和/或URL主域限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个。
2.根据权利要求1所述的方法,其中,所述根据预设的IP地址限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个进一步包括:
检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务;
若是,从所述URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;
若否,从所述URL任务列表中提取预设数量的URL检测任务分配给所述第一网络爬虫。
3.根据权利要求1所述的方法,其中,所述根据预设的URL主域限制条件,将所述URL任务列表中的URL分配给所述多个网络爬虫中的其中一个进一步包括:
从所述URL任务列表中提取第一URL检测任务;
检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫;
若是,则从所述URL任务列表中提取第三URL检测任务分配给所述多个网络爬虫中的其中一个,其中第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述多个网络爬虫中的其中一个。
4.根据权利要求1所述的方法,其中,所述根据预设的IP地址限制条件和URL主域限制条件,将所述URL任务列表中的URL分配给所述多个网络爬虫中的其中一个进一步包括:
从所述URL任务列表中提取第一URL检测任务;
检测在第三预设时间内是否将与所述第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫;
若是,将所述第一URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;或者,从所述URL任务列表中提取第三URL检测任务分配给所述第一网络爬虫,第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述第一网络爬虫。
5.根据权利要求1所述的方法,其中,还包括:
接收所述网络爬虫返回的连通性检测结果,并将所述连通性检测结果写入URL检测日志文件中。
6.根据权利要求5所述的方法,其中,所述连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数。
7.根据权利要求5所述的方法,其中,在接收到所述网络爬虫返回的连通性检测结果,并将所述连通性检测结果写入URL检测日志文件中之后,所述方法还包括:
若所述URL检测任务的连通性检测结果表明连通性检测失败,查询所述URL检测日志文件;
判断所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则将所述URL检测任务再次分配给属于不同网段的另一网络爬虫。
8.根据权利要求5所述的方法,其中,在接收到所述网络爬虫返回的连通性检测结果之后,所述方法还包括:
将所述连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
9.根据权利要求1-8任一项所述的方法,其中,所述将从数据库中获取的URL检测任务存储在URL任务列表中进一步包括:
优先将所述数据库中需要实时检测的URL检测任务存储在所述URL任务列表中。
10.根据权利要求1-8任一项所述的方法,其中,所述网络爬虫包括:Java网络爬虫和PHP网络爬虫。
11.根据权利要求1-8任一项所述的方法,其中,所述数据库为关系型数据库。
12.一种URL检测任务的分配器,其中,所述URL为物料的链接地址,所述分配器包括:
存储模块,适于将从数据库中获取的URL检测任务存储在URL任务列表中,其中,所述数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务;
接收模块,适于接收多个网络爬虫发送的获取URL检测任务的请求;
分配模块,适于响应所述请求,根据预设的分配策略将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性;
其中,所述分配模块进一步适于:
根据预设的IP地址限制条件和/或URL主域限制条件,将所述URL任务列表中的URL检测任务分配给所述多个网络爬虫中的其中一个。
13.根据权利要求12所述的分配器,其中,所述分配模块进一步适于:
检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务;
若是,从所述URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;
若否,从所述URL任务列表中提取预设数量的URL检测任务分配给所述第一网络爬虫。
14.根据权利要求12所述的分配器,其中,所述分配模块进一步适于:
从所述URL任务列表中提取第一URL检测任务;
检测在第二预设时间内是否将与第一URL具有相同主域的第二URL检测任务分配给任一个网络爬虫;
若是,则从所述URL任务列表中提取第三URL检测任务分配给所述多个网络爬虫中的其中一个,其中第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述多个网络爬虫中的其中一个。
15.根据权利要求12所述的分配器,其中,所述分配模块进一步适于:
从所述URL任务列表中提取第一URL检测任务;
检测在第三预设时间内是否将与所述第一URL具有相同主域的第二URL检测任务分配给第一网络爬虫;
若是,将所述第一URL检测任务分配给第二网络爬虫,所述第二网络爬虫的IP地址与所述第一网络爬虫的IP地址不同;或者,从所述URL任务列表中提取第三URL检测任务分配给所述第一网络爬虫,第三URL的主域与第二URL的主域不同;
若否,则将所述第一URL检测任务分配给所述第一网络爬虫。
16.根据权利要求12所述的分配器,其中,所述接收模块进一步适于:接收所述网络爬虫返回的连通性检测结果;
还包括:写入模块,适于将所述连通性检测结果写入URL检测日志文件中。
17.根据权利要求16所述的分配器,其中,所述连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数。
18.根据权利要求16所述的分配器,其中,所述分配器还包括:
查询模块,适于在所述URL检测任务的连通性检测结果表明连通性检测失败的情况下,查询所述URL检测日志文件;
判断模块,适于判断所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数是否小于或等于预设阈值;
所述分配模块进一步适于:在所述URL检测日志文件中记录的所述URL检测任务连通性检测失败的次数小于或等于预设阈值的情况下,将所述URL检测任务再次分配给属于不同网段的另一网络爬虫。
19.根据权利要求16所述的分配器,其中,所述分配器还包括:发送模块,适于将所述连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
20.一种URL检测系统,包括:权利要求12-19任一项所述的分配器;还进一步包括:网络爬虫、数据库、监控模块、消息队列服务器、订阅服务器;
所述网络爬虫,适于向所述分配器发送获取URL检测任务的请求,以及对获取到的URL进行连通性检测;
数据库,适于存储URL检测任务,以及连通性检测结果,其中,所述数据库中存储有需实时检测的URL检测任务和需巡查的URL检测任务;
监控模块,适于对所述网络爬虫的检测进度进行监控;
消息队列服务器,适于存储连通性检测结果;
订阅者服务器,适于通过订阅消息的方式获取连通性检测结果,并根据所述连通性检测结果对物料进行上线或下架处理。
21.根据权利要求20所述的系统,其中,所述分配器进一步适于:优先将所述数据库中需要实时检测的URL检测任务存储在所述URL任务列表中。
22.根据权利要求20所述的系统,其中,所述网络爬虫包括:Java网络爬虫和PHP网络爬虫。
23.根据权利要求20所述的系统,其中,所述数据库为关系型数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460127.6A CN104965933B (zh) | 2015-07-30 | 2015-07-30 | Url检测任务的分配方法、分配器及url检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460127.6A CN104965933B (zh) | 2015-07-30 | 2015-07-30 | Url检测任务的分配方法、分配器及url检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104965933A CN104965933A (zh) | 2015-10-07 |
CN104965933B true CN104965933B (zh) | 2018-12-25 |
Family
ID=54219972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510460127.6A Active CN104965933B (zh) | 2015-07-30 | 2015-07-30 | Url检测任务的分配方法、分配器及url检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104965933B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900229B2 (en) * | 2016-01-29 | 2018-02-20 | Microsoft Technology Licensing, Llc | Network-connectivity detection |
CN106411639A (zh) * | 2016-09-18 | 2017-02-15 | 合网络技术(北京)有限公司 | 访问数据的监控方法及系统 |
CN107743079B (zh) * | 2017-09-29 | 2021-05-04 | 网宿科技股份有限公司 | 线路探测方法、设备及计算机可读存储介质 |
CN108052429A (zh) * | 2017-11-13 | 2018-05-18 | 山东中创软件商用中间件股份有限公司 | 一种url的状态监控方法、装置及介质 |
CN108430051B (zh) * | 2018-02-09 | 2021-06-04 | 北京天元创新科技有限公司 | 一种业务开通方法和设备 |
CN108521428B (zh) * | 2018-04-20 | 2020-09-01 | 武汉极意网络科技有限公司 | 一种基于jenkins的公网防爬虫的实现方法及系统 |
CN111092921B (zh) * | 2018-10-24 | 2022-05-10 | 北大方正集团有限公司 | 数据采集方法、装置及存储介质 |
CN111159514B (zh) * | 2018-11-07 | 2022-12-13 | 中移(苏州)软件技术有限公司 | 网络爬虫的任务有效性检测方法、装置和设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162448A1 (en) * | 2006-01-10 | 2007-07-12 | Ashish Jain | Adaptive hierarchy structure ranking algorithm |
CN102083100A (zh) * | 2010-12-31 | 2011-06-01 | 百度在线网络技术(北京)有限公司 | 一种用于基于站点检测多个资源链接的状态的方法与设备 |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103873597A (zh) * | 2014-04-15 | 2014-06-18 | 厦门市美亚柏科信息股份有限公司 | 分布式网页下载方法和系统 |
-
2015
- 2015-07-30 CN CN201510460127.6A patent/CN104965933B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162448A1 (en) * | 2006-01-10 | 2007-07-12 | Ashish Jain | Adaptive hierarchy structure ranking algorithm |
CN102083100A (zh) * | 2010-12-31 | 2011-06-01 | 百度在线网络技术(北京)有限公司 | 一种用于基于站点检测多个资源链接的状态的方法与设备 |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103873597A (zh) * | 2014-04-15 | 2014-06-18 | 厦门市美亚柏科信息股份有限公司 | 分布式网页下载方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104965933A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104965933B (zh) | Url检测任务的分配方法、分配器及url检测系统 | |
US20200089515A1 (en) | Dynamic application migration between cloud providers | |
CN105074695B (zh) | 用于监控联合服务的数据中心边界发布的分析 | |
US9122998B2 (en) | Catalog-based software license reconciliation | |
CN103810405A (zh) | 用于软件许可管理的方法和装置 | |
CN106327324B (zh) | 一种网络行为特征的快速计算方法和系统 | |
CN105893259B (zh) | 代码检测系统、方法及装置 | |
CN107392801B (zh) | 控制扰乱订单的方法及其装置、存储介质、电子设备 | |
CN109446830A (zh) | 基于区块链的数据中心环境信息处理方法及装置 | |
US20150348051A1 (en) | Providing Recommendations Through Predictive Analytics | |
CN102663273A (zh) | 计算机网络中软件许可证的改进管理 | |
US20160301812A1 (en) | Determining an action in response to an event | |
CN106600082A (zh) | 业务系统中任务的处理方法、装置及业务体系构建系统 | |
US10789307B2 (en) | Cloud-based discovery and inventory | |
CN108769157A (zh) | 消息弹窗的展示方法、装置、计算设备及计算机存储介质 | |
WO2019142345A1 (ja) | セキュリティ情報処理装置、情報処理方法及び記録媒体 | |
CN110515631A (zh) | 应用安装数据包的生成方法、服务器及计算机存储介质 | |
CN105656996B (zh) | 数据节点存活的检测方法及装置 | |
US20190080360A1 (en) | Technologies for propogating advertisements | |
CN104504330B (zh) | 虚拟化安全检测方法与系统 | |
CN108255875A (zh) | 将消息存储至分布式文件系统的方法和装置 | |
JP6486956B2 (ja) | システムおよび方法 | |
US10970722B2 (en) | Method, systems, and computer-readable storage media for real-time event management system for mobile devices | |
KR20170022100A (ko) | 영업활동 평가 지원 장치 및 방법 | |
CN109408369A (zh) | 一种系统测试方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220725 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |