Url检测任务的分配方法、分配器及url检测系统的制作方法_2

文档序号:9249333阅读:来源:国知局
是举例说明,本领域技术人员应该理解,检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务的方法并不限于上述实例中方法,本领域技术人员可以根据实际需要采用适当方法,在此不再赘述。
[0053]检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务,主要是为了防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数。
[0054]步骤S203,从URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,其中,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同。
[0055]具体地,本步骤中的预设数量根据网络爬虫的检测能力确定,可以是1000或10000个,这里的数值仅仅是举例说明,不应理解为对网络爬虫获取URL检测任务个数的具体限定。
[0056]在检测到在第一预设时间内,向第一网络爬虫分配过URL检测任务的情况下,分配器从URL任务列表中提取预设数量的URL检测任务分配给与第一网络爬虫的IP地址不同的第二网络爬虫,以供该网络爬虫检测URL的连通性。
[0057]步骤S204,从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
[0058]在检测到在第一预设时间内,未向第一网络爬虫分配过URL检测任务的情况下,分配器从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性。
[0059]步骤S205,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中。
[0060]网络爬虫在接收到分配分配的URL检测任务后,首先检测URL是否为恶意的链接地址,在检测到URL不是恶意的链接地址的情况下,通过URL多线程对该URL进行连通性检测。待检测完成后,统一将获取到的URL检测任务的检测结果提交到分配器。
[0061]具体地,网络爬虫以HTTP POST方式,将连通性检测结果发送给分配器,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,其中,连通性检测结果包括:网络爬虫对应的IP地址、状态码以及检查次数,状态码具体用于表示URL连通、URL不连通和URL为恶意的三种情况,URL不连通和URL为恶意的表示连通性检测失败,状态码:100表示URL连通,状态码:200表示URL不连通,状态码:300表示URL为恶意的。
[0062]步骤S206,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件。
[0063]URL检测日志文件记录有连通性检测结果的状态码,当状态码为200或300时,表明连通性检测失败,需要查询URL检测日志文件,这里主要是查询检测次数。
[0064]步骤S207,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则执行步骤S208 ;若否则检测结束。
[0065]一般情况下,在具有第一 IP地址的第一网络爬虫对URL连通性检测失败的情况下,并不能确定无疑的认定该URL为不连通的,有可能是用户的防火墙将第一 IP地址所属的整个网段屏蔽掉,因此还需要更换网段对该URL进行再次检测。
[0066]本步骤中,该预设阈值为预先设置的URL连通性检测次数,例如该预设阈值可以为3,即,URL检测任务连通性检测失败的次数大于3时,则停止对该URL检测任务进行连通性检测,并且可以认定该URL为不连通的。
[0067]具体地,通过判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于3,若小于或等于3,则可以继续对URL检测日志文件中记录的URL检测任务进行连通性检测,若大于3,则停止对URL检测日志文件中记录的URL检测任务进行连通性检测,检测结束。
[0068]步骤S208,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
[0069]在URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于3的情况下,将URL检测任务再次分配给属于不同网段的另一网络爬虫,例如具有IP地址:191.1.1.0的网络爬虫,由该网络爬虫对URL检测任务进行连通性检测。通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
[0070]步骤S209,将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
[0071]具体地,网络爬虫以HTTP POST方式,将连通性检测结果发送给分配器,接收网络爬虫返回的连通性检测结果,分配器在接收到网络爬虫发送的连通性检测结果后,通过RabbitMQ消息将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
[0072]根据本发明上述实施例提供的方法,通过检测在第一预设时间内是否向第一网络爬虫分配过URL检测任务,若是,从URL任务列表中提取预设数量的URL检测任务分配给第二网络爬虫,以供该网络爬虫检测URL的连通性,其中,第二网络爬虫的IP地址与第一网络爬虫的IP地址不同,若否,从URL任务列表中提取预设数量的URL检测任务分配给第一网络爬虫,以供该网络爬虫检测URL的连通性,可以防止同一个网络爬虫由于频繁获取URL检测任务,而被用户的防火墙屏蔽,使得该网络爬虫无法再获取URL检测任务,降低了向用户请求的次数;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,将URL检测任务再次分配给属于不同网段的另一网络爬虫,通过更换网段对URL检测任务进行检测,降低了被用户的防火墙屏蔽掉的风险,而且经过多次检测URL状态能够精确地检测URL的连通性。
[0073]需要说明的是,本实施例中步骤S202、S203和S204可替换为其它的分配方式,例如现有技术的分配方式,替换后的方案,即更换网段对URL检测任务进行多次检测以提升检测结果精确性的方案,属于具有一定技术效果的独立方案,其也属于本发明所要保护的范围。
[0074]图3示出了根据本发明另一个实施例的URL检测任务的分配方法的流程图。在本实施例中,主要是根据预设的URL主域限制条件,将URL任务列表中的URL检测任务分配给多个网络爬虫中的其中一个。图3所示实施例与图2所示实施例的区别在于URL检测任务的分配条件不同。如图3所示,该方法包括以下步骤:
[0075]步骤S300,将从数据库中获取的URL检测任务存储在URL任务列表中。
[0076]步骤S301,接收多个网络爬虫发送的获取URL检测任务的请求。
[0077]步骤S302,响应该请求,从URL任务列表中提取第一 URL检测任务。
[0078]本步骤中的第一 URL是待分配的URL检测任务,分配器响应网络爬虫的请求,从URL任务列表中提取出第一 URL检测任务,其中,第一 URL检测任务的主域为?厕.abed.com0
[0079]步骤S303,检测在第二预设时间内是否将与第一 URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫,若是,则执行步骤S304 ;若否,则执行步骤S305。
[0080]第二预设时间定义了任一个网络爬虫请求某一主域的网站的间隔时间,例如,定义任一个网络爬虫可以请求某一主域的网站的间隔时间为3秒,即对该主域的网站相邻两次的请求间隔时间为3秒,具体为,在第一次请求结束后,需要等待3秒的时间,任一个网络爬虫才可以对该主域的网站进行第二次请求。
[0081]具体地,检测在3秒内是否将与第一 URL具有相同主域:www.abed, com的第二 URL检测任务分配给任一个网络爬虫,若是,则说明已经将主域测.abed, com的第二 URL检测任务分配给了任一个网络爬虫,需要等待3秒再将具有该主域的第一 URL检测任务分配给网络爬虫;若否,则说明未将主域:■.abed, com的URL检测任务分配给网络爬虫,可以将具有该主域的第一 URL检测任务分配给网络爬虫。通过检测在第二预设时间内是否将与第一URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫,可以防止网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率。
[0082]步骤S304,从URL任务列表中提取第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,其中,第三URL的主域与第二 URL的主域不同。
[0083]在检测到在第二预设时间3秒内将与第一 URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫的情况下,从URL任务列表中提取与第二URL的主域:www.abed, com不同的第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,例如,第三URL检测任务的主域可以是www.chdf j.com。
[0084]步骤S305,将第一 URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
[0085]在检测到在第二预设时间3秒内未将与第一 URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫的情况下,将主域为細.abed, com的第一 URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性。
[0086]步骤S306,接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL检测日志文件中。
[0087]步骤S307,在URL检测任务的连通性检测结果表明连通性检测失败,查询URL检测日志文件。
[0088]步骤S308,判断URL检测日志文件中记录的URL检测任务连通性检测失败的次数是否小于或等于预设阈值,若是,则执行步骤S309 ;若否则检测结束。
[0089]步骤S309,将URL检测任务再次分配给属于不同网段的另一网络爬虫。
[0090]步骤S310,将连通性检测结果发送至消息队列,供订阅者通过订阅消息的方式获取连通性检测结果,并根据连通性检测结果对物料进行上线或下架处理。
[0091]根据本发明上述实施例提供的方法,从URL任务列表中提取第一 URL检测任务,检测在第二预设时间内是否将与第一 URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫,若是,则从URL任务列表中提取第三URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,其中,第三URL的主域与第二 URL的主域不同,若否,则将第一 URL检测任务分配给多个网络爬虫中的其中一个,以供该网络爬虫检测URL的连通性,通过检测在第二预设时间内是否将与第一 URL具有相同主域的第二 URL检测任务分配给任一个网络爬虫,可以防止网络爬虫频繁请求同一主域的网站,降低被用户的防火墙屏蔽掉的几率;接收网络爬虫返回的连通性检测结果,并将连通性检测结果写入URL
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1