域名数据挖掘方法、装置及Redis服务器制造方法及图纸

技术编号:27492113 阅读:24 留言:0更新日期:2021-03-02 18:11
本申请实施例公开了域名数据挖掘方法、装置及Redis服务器,该方法应用于任一台主机时包括:创建与Redis服务器之间的连接,运行多个爬虫线程,控制每个爬虫线程依次从任务分发模块中获取一个爬取任务并执行;对目标爬虫线程执行完目标爬取任务后所返回的响应数据进行解析,获取对应的目标域名信息发送至域名去重模块,判断目标域名信息是否与已完成爬取的域名发生重复;若重复,则将目标域名信息舍弃;若不重复,则将目标域名信息保存至本地存储模块。上述方法在保存之前就将重复收集的域名数据删除,有效解决了分布式的爬虫去重问题,避免后续出现任务堆积、数据冗余的情况。数据冗余的情况。数据冗余的情况。

【技术实现步骤摘要】
域名数据挖掘方法、装置及Redis服务器


[0001]本申请涉及网络安全
,尤其涉及域名数据挖掘方法、装置及Redis服务器。

技术介绍

[0002]目前主要通过网络爬虫的方式实现域名数据的挖掘。网络爬虫是指书写爬虫脚本来获取域名数据,基本工作流程包括:首先选取一些URL(Uniform Resource Locator,统一资源定位符)作为种子URL放入待爬取队列中,然后书写爬虫脚本,针对待爬取队列中的种子URL,模拟人工浏览的方式访问网站,将爬取到的网页HTML(Hyper Text Markup Language,超文本标记语言)数据进行存储以及解析,并将解析所得的新链接作为下一层爬取的种子URL。
[0003]为了提高爬取效率,通常在多台主机上执行同一个爬虫程序,以进行域名数据的分布式爬取。在分布式爬取过程中,每台主机在将收集到的域名信息保存至本地存储模块,但是由于每台主机独立执行爬取任务,因此并不知道爬取到的数据是否与其余主机爬取的数据产生重复。为了解决这一问题,目前的处理方案是每台主机先将收集的所有域名数据保存在本地,后续统一采用解析程序对所有主机收集的域名数据进行去重处理。但是在爬取任务十分繁多的情况下,这样的处理方式将导致任务堆积,造成数据冗余。

技术实现思路

[0004]为了解决每台主机先将收集的所有域名数据保存在本地,后续统一采用解析程序对所有主机收集的域名数据进行去重处理,将在爬取任务十分繁多的情况下,导致任务堆积,造成数据冗余的问题,本申请通过以下实施例公开了域名数据挖掘方法、装置及Redis服务器。
[0005]本申请第一方面公开了一种域名数据挖掘方法,所述域名数据挖掘方法应用于任一台主机,所述域名数据挖掘方法包括:
[0006]创建与Redis服务器之间的连接,所述Redis服务器包括任务分发模块、任务标记模块及域名去重模块;
[0007]运行多个爬虫线程;
[0008]控制每个所述爬虫线程依次从所述任务分发模块中获取一个爬取任务并执行,所述爬虫线程用于在每执行完一个爬取任务后,将该爬取任务对应的域名写入所述任务标记模块中,以标记该域名已完成爬取;
[0009]对目标爬虫线程执行完目标爬取任务后所返回的响应数据进行解析,获取对应的目标域名信息,所述目标爬虫线程为任一爬虫线程,所述目标爬取任务为所述目标爬虫线程从所述任务分发模块中获取的任一爬取任务;
[0010]将所述目标域名信息发送至所述域名去重模块,以判断所述目标域名信息是否与已完成爬取的域名发生重复,其中,所述域名去重模块连接至所述任务标记模块,所述域名
去重模块用于判断所述目标域名信息是否与所述任务标记模块中当前记载的其中一个域名发生重复;
[0011]获取所述域名去重模块返回的判断结果;
[0012]若所述判断结果为所述目标域名信息与所述已完成爬取的域名发生重复,则将所述目标域名信息舍弃,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行;
[0013]若所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复,则将所述目标域名信息保存至本地存储模块,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行。
[0014]可选的,所述创建与Redis服务器之间的连接,包括:
[0015]创建与所述任务分发模块之间的读取连接;
[0016]创建与所述任务标记模块之间的标记连接;
[0017]创建与所述域名去重模块之间的去重连接。
[0018]可选的,在运行多个爬虫线程的同时,所述域名数据挖掘方法还包括:
[0019]运行保存线程,所述保存线程用于在所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复时,执行将所述目标域名信息保存至本地存储模块的步骤。
[0020]本申请第二方面公开了一种域名数据挖掘装置,所述域名数据挖掘装置应用于如本申请第一方面所述的域名数据挖掘方法,所述域名数据挖掘装置包括:
[0021]创建连接模块,用于创建与Redis服务器之间的连接,所述Redis服务器包括任务分发模块、任务标记模块及域名去重模块;
[0022]线程运行模块,用于运行多个爬虫线程;
[0023]爬虫任务执行模块,用于控制每个所述爬虫线程依次从所述任务分发模块中获取一个爬取任务并执行,所述爬虫线程用于在每执行完一个爬取任务后,将该爬取任务对应的域名写入所述任务标记模块中,以标记该域名已完成爬取;
[0024]数据解析模块,用于对目标爬虫线程执行完目标爬取任务后所返回的响应数据进行解析,获取对应的目标域名信息,所述目标爬虫线程为任一爬虫线程,所述目标爬取任务为所述目标爬虫线程从所述任务分发模块中获取的任一爬取任务;
[0025]去重模块,用于将所述目标域名信息发送至所述域名去重模块,以判断所述目标域名信息是否与已完成爬取的域名发生重复,其中,所述域名去重模块连接至所述任务标记模块,所述域名去重模块用于判断所述目标域名信息是否与所述任务标记模块中当前记载的其中一个域名发生重复;
[0026]获取判断结果模块,用于获取所述域名去重模块返回的判断结果;
[0027]去重模块,用于在所述判断结果为所述目标域名信息与所述已完成爬取的域名发生重复时,将所述目标域名信息舍弃,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行;
[0028]保存模块,用于在所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复时,将所述目标域名信息保存至本地存储模块,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行。
[0029]可选的,所述创建连接模块包括:
[0030]创建读取连接单元,用于创建与所述任务分发模块之间的读取连接;
[0031]创建标记连接单元,用于创建与所述任务标记模块之间的标记连接;
[0032]创建去重连接单元,用于创建与所述域名去重模块之间的去重连接。
[0033]本申请第三方面公开了一种域名数据挖掘方法,所述域名数据挖掘方法应用于Redis服务器,所述Redis服务器包括任务分发模块、任务标记模块及域名去重模块,所述域名数据挖掘方法包括:
[0034]所述任务分发模块、所述任务标记模块及所述域名去重模块分别建立与目标主机之间的连接,所述目标主机为任一台主机;
[0035]在所述目标主机运行多个爬虫线程后,所述任务分发模块依次向所述目标主机的每个爬虫线程分发爬取任务;
[0036]在所述爬虫线程每执行完一个爬取任务后,所述任务标记模块对该爬取任务对应的域名进行记载,以标记该域名已完成爬取;
[0037]在接收到所述目标主机发送的目标域名信息后,所述域名去重模块判断所述目标域名信息是否与所述任务标记模块中当前记载的其中一个域名发生重复,并将判断结果返回至所述目标主机,所述目标主机用于在所述判断结果本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种域名数据挖掘方法,其特征在于,所述域名数据挖掘方法应用于任一台主机,所述域名数据挖掘方法包括:创建与Redis服务器之间的连接,所述Redis服务器包括任务分发模块、任务标记模块及域名去重模块;运行多个爬虫线程;控制每个所述爬虫线程依次从所述任务分发模块中获取一个爬取任务并执行,所述爬虫线程用于在每执行完一个爬取任务后,将该爬取任务对应的域名写入所述任务标记模块中,以标记该域名已完成爬取;对目标爬虫线程执行完目标爬取任务后所返回的响应数据进行解析,获取对应的目标域名信息,所述目标爬虫线程为任一爬虫线程,所述目标爬取任务为所述目标爬虫线程从所述任务分发模块中获取的任一爬取任务;将所述目标域名信息发送至所述域名去重模块,以判断所述目标域名信息是否与已完成爬取的域名发生重复,其中,所述域名去重模块连接至所述任务标记模块,所述域名去重模块用于判断所述目标域名信息是否与所述任务标记模块中当前记载的其中一个域名发生重复;获取所述域名去重模块返回的判断结果;若所述判断结果为所述目标域名信息与所述已完成爬取的域名发生重复,则将所述目标域名信息舍弃,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行;若所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复,则将所述目标域名信息保存至本地存储模块,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行。2.根据权利要求1所述的域名数据挖掘方法,其特征在于,所述创建与Redis服务器之间的连接,包括:创建与所述任务分发模块之间的读取连接;创建与所述任务标记模块之间的标记连接;创建与所述域名去重模块之间的去重连接。3.根据权利要求1所述的域名数据挖掘方法,其特征在于,在运行多个爬虫线程的同时,所述域名数据挖掘方法还包括:运行保存线程,所述保存线程用于在所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复时,执行将所述目标域名信息保存至本地存储模块的步骤。4.一种域名数据挖掘装置,其特征在于,所述域名数据挖掘装置应用于如权利要求1-3任一项所述的域名数据挖掘方法,所述域名数据挖掘装置包括:创建连接模块,用于创建与Redis服务器之间的连接,所述Redis服务器包括任务分发模块、任务标记模块及域名去重模块;线程运行模块,用于运行多个爬虫线程;爬虫任务执行模块,用于控制每个所述爬虫线程依次从所述任务分发模块中获取一个爬取任务并执行,所述爬虫线程用于在每执行完一个爬取任务后,将该爬取任务对应的域名写入所述任务标记模块中,以标记该域名已完成爬取;
数据解析模块,用于对目标爬虫线程执行完目标爬取任务后所返回的响应数据进行解析,获取对应的目标域名信息,所述目标爬虫线程为任一爬虫线程,所述目标爬取任务为所述目标爬虫线程从所述任务分发模块中获取的任一爬取任务;去重模块,用于将所述目标域名信息发送至所述域名去重模块,以判断所述目标域名信息是否与已完成爬取的域名发生重复,其中,所述域名去重模块连接至所述任务标记模块,所述域名去重模块用于判断所述目标域名信息是否与所述任务标记模块中当前记载的其中一个域名发生重复;获取判断结果模块,用于获取所述域名去重模块返回的判断结果;去重模块,用于在所述判断结果为所述目标域名信息与所述已完成爬取的域名发生重复时,将所述目标域名信息舍弃,控制所述目标爬虫线程继续从所述任务分发模块中获取下一个爬取任务并执行;保存模块,用于在所述判断结果为所述目标域名信息未与所述已完成爬取的域名发生重复时,将所述目标域名信息保存至本地存储模块,控制所述目标爬虫线程继续从所述任务分发模...

【专利技术属性】
技术研发人员:柳开江
申请(专利权)人:北京安博通科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1