CN112784134B - 获取热点域名描述信息的方法、装置、设备及存储介质 - Google Patents

获取热点域名描述信息的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112784134B
CN112784134B CN202110107562.6A CN202110107562A CN112784134B CN 112784134 B CN112784134 B CN 112784134B CN 202110107562 A CN202110107562 A CN 202110107562A CN 112784134 B CN112784134 B CN 112784134B
Authority
CN
China
Prior art keywords
domain name
domain
description information
list
hot spot
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
CN202110107562.6A
Other languages
English (en)
Other versions
CN112784134A (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.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
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 Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202110107562.6A priority Critical patent/CN112784134B/zh
Publication of CN112784134A publication Critical patent/CN112784134A/zh
Application granted granted Critical
Publication of CN112784134B publication Critical patent/CN112784134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

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 Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于互联网技术领域,公开了一种获取热点域名描述信息的方法、装置、设备及存储介质。该方法包括:获取预设时间粒度的若干热点域名;对若干热点域名进行筛选,得到筛选后的待处理域名;根据待处理域名的顶级域进行分组,得到待爬取列表,待爬取列表中包含顶级域以及对应的域名列表;遍历待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;将描述信息作为域名列表中各待处理域名对应的描述信息。通过上述方式,对热点域名进行筛选以及分组,对待处理域名的顶级域进行爬取,将爬取到的顶级域的描述信息作为对应分组内各待处理域名的描述信息,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间,提高了爬虫速度。

Description

获取热点域名描述信息的方法、装置、设备及存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种获取热点域名描述信息的方法、装置、设备及存储介质。
背景技术
域名是互联网中的重要资源,是实现互联网服务获取和资源访问的核心功能,几乎所有互联网应用的正常运行都离不开域名系统(英文:Domain Name System,DNS)的支持。DNS是全球互联网服务的基石,是互连网络通信的重要保障。DNS服务器上每天会产生大量的资源访问记录,对其中的域名数据,通过访问量排序,筛选出每天的热点域名。将热点域名及通过爬虫获取到的热点域名描述信息通过一定的属性映射,保存到数据库中。这些海量域名描述信息数据可以方便后续进行语义分析、恶意域名检测、钓鱼网站检测和黄赌毒网站分析等场景。
现有爬虫方式,通常是使用Scrapy、PySpider等框架和Beautiful Soup等网页分析工具进行爬虫。无论是爬虫框架还是Beautiful Soup网页分析工具,都是只使用一种方式,遍历式请求待爬虫url,当面对海量热点域名数据需要进行爬虫处理时,即使使用多线程或者多进程,也会出现爬虫的成功率低以及爬虫速度慢等问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种获取热点域名描述信息的方法、装置、设备及存储介质,旨在解决当面对海量热点域名数据需要进行爬虫处理时,存在爬虫速度慢的技术问题。
为实现上述目的,本发明提供了一种获取热点域名描述信息的方法,所述方法包括以下步骤:
获取预设时间粒度的若干热点域名;
对所述若干热点域名进行筛选,得到筛选后的待处理域名;
根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表;
遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;
将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
可选地,遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息,包括:
遍历所述待爬取列表,根据预设优先级顺序调用第一爬取策略,根据所述第一爬取策略对遍历到的顶级域进行爬取;
在未爬取到对应的描述信息时,根据所述预设优先级顺序调用第二爬取策略,根据所述第二爬取策略对遍历到的顶级域进行爬取,以获取对应的描述信息。
可选地,根据所述待处理域名的顶级域进行分组,得到待爬取列表,包括:
通过顶级域名提取策略分割出所述待处理域名对应的主机名和顶级域名;
将所述主机名和所述顶级域名通过字符拼接组成顶级域字段值;
根据所述顶级域字段值对所述待处理域名进行分组,确定所述顶级域字段值对应的域名列表;
根据所述顶级域字段值以及所述域名列表构成待爬取列表。
可选地,所述根据所述顶级域字段值以及所述域名列表构成待爬取列表,包括:
将所述顶级域字段值以及所述域名列表以键值对的形式组成字典对象;
通过预设数据格式转换策略将所述字典对象转换为待爬取列表中的元组,以构成待爬取列表。
可选地,所述将所述描述信息作为所述域名列表中各待处理域名对应的描述信息之后,所述方法还包括:
根据所述待处理域名以及所述描述信息确定预设字段值;
通过预设批量写入策略将所述预设字段值写入预设数据库,其中,所述预设字段值至少包括:起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识以及域名分类。
可选地,所述通过预设批量写入策略将所述预设字段值写入预设数据库之前,所述方法还包括:
在获取到所述描述信息时,将所述域名列表中各待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。
可选地,所述对所述若干热点域名进行筛选,得到筛选后的待处理域名,包括:
遍历所述若干热点域名,将遍历到的目标热点域名与预设数据库进行匹配;
在匹配到所述目标热点域名时,确定所述预设数据库中所述目标热点域名对应的爬虫标志位;
在所述爬虫标志位为预设爬虫成功标志时,将所述目标热点域名筛除,以得到筛选后的待处理域名。
此外,为实现上述目的,本发明还提出一种获取热点域名描述信息的装置,所述获取热点域名描述信息的装置包括:
获取模块,用于获取预设时间粒度的若干热点域名;
筛选模块,用于对所述若干热点域名进行筛选,得到筛选后的待处理域名;
分组模块,用于根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表;
爬取模块,用于遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;
写入模块,用于将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
此外,为实现上述目的,本发明还提出一种获取热点域名描述信息的设备,所述获取热点域名描述信息的设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的获取热点域名描述信息的程序,所述获取热点域名描述信息的程序配置为实现如上文所述的获取热点域名描述信息的方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有获取热点域名描述信息的程序,所述获取热点域名描述信息的程序被处理器执行时实现如上文所述的获取热点域名描述信息的方法的步骤。
本发明通过获取预设时间粒度的若干热点域名;对若干热点域名进行筛选,得到筛选后的待处理域名;根据待处理域名的顶级域进行分组,得到待爬取列表,待爬取列表中包含顶级域以及对应的域名列表;遍历待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;将描述信息作为域名列表中各待处理域名对应的描述信息。通过上述方式,对海量热点域名进行筛选以及分组,得到顶级域对应域名列表形式的待爬取列表,针对同一域名列表中的各待处理域名,只需爬取该域名列表对应的顶级域的描述信息,将该顶级域的描述信息作为该域名列表中各待处理域名对应的描述信息,对整个待爬取列表进行爬取,得到海量热点域名对应的描述信息,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间,提高了爬虫速度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的获取热点域名描述信息的设备的结构示意图;
图2为本发明获取热点域名描述信息的方法第一实施例的流程示意图;
图3为本发明获取热点域名描述信息的方法第二实施例的流程示意图;
图4为本发明获取热点域名描述信息的方法第三实施例的流程示意图;
图5为本发明获取热点域名描述信息的方法一实施例的获取描述信息流程示意图;
图6为本发明获取热点域名描述信息的装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的获取热点域名描述信息的设备结构示意图。
如图1所示,该获取热点域名描述信息的设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对获取热点域名描述信息的设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及获取热点域名描述信息的程序。
在图1所示的获取热点域名描述信息的设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明获取热点域名描述信息的设备中的处理器1001、存储器1005可以设置在获取热点域名描述信息的设备中,所述获取热点域名描述信息的设备通过处理器1001调用存储器1005中存储的获取热点域名描述信息的程序,并执行本发明实施例提供的获取热点域名描述信息的方法。
本发明实施例提供了一种获取热点域名描述信息的方法,参照图2,图2为本发明获取热点域名描述信息的方法第一实施例的流程示意图。
本实施例中,所述获取热点域名描述信息的方法包括以下步骤:
步骤S10:获取预设时间粒度的若干热点域名。
可以理解的是,本实施例的执行主体为获取热点域名描述信息的设备,所述获取热点域名描述信息的设备可以是与域名服务器(DNS服务器)通信连接的计算机以及服务器等设备,也可以是DNS服务器,本实施例对此不加以限制。
需要说明的是,预设时间粒度为提前设置的时间值,例如,每5分钟、每1小时、每个9点至18点等等,热点域名为域名服务器根据对各域名的访问量进行排序确定的,在具体实现中,域名服务器获取预设时间粒度内的各域名的访问记录,根据访问量从大到小对域名进行排序,截取访问量超过一定大小的域名作为热点域名。在执行主体为与域名服务器通信连接的计算机以及服务器等设备时,计算机向域名服务器发送请求信号,以使域名服务器将预设时间粒度的若干热点域名打包发送至计算机。
步骤S20:对所述若干热点域名进行筛选,得到筛选后的待处理域名。
可以理解的是,对若干热点域名进行筛选的过程可以包括对重复爬取的热点域名进行筛除,也可以包括对若干热点域名中的无效域名进行筛选,本实施例对此不加以限制。
进一步地,为了避免重复爬取,进一步提升热点域名描述信息的爬取速度,所述步骤S20,包括:遍历所述若干热点域名,将遍历到的目标热点域名与预设数据库进行匹配;在匹配到所述目标热点域名时,确定所述预设数据库中所述目标热点域名对应的爬虫标志位;在所述爬虫标志位为预设爬虫成功标志时,将所述目标热点域名筛除,以得到筛选后的待处理域名。
需要说明的是,预设数据库为存储域名相关信息的数据库,在具体实现中,预设数据库为Elasticsearch数据库,每隔一定的时间,对这段时间内的热点域名进行爬取,将爬取得到的相关信息存储在Elasticsearch数据库中,其中包括爬虫标志位,爬虫标志位表征该条热点域名是否已成功爬取,如果已成功爬取,则将该条热点域名对应的爬虫标志位设置为预设爬虫成功标志。也就是说,在检测到若干热点域名中存在已经爬取成功的热点域名,则将这些已经爬取成功的热点域名筛除掉,将剩余的热点域名作为待处理域名。
具体地,所述将遍历到的目标热点域名与预设数据库进行匹配,包括:将遍历到的目标热点域名与预设数据库中的起始域名字段值进行匹配;若所述目标热点域名与所述起始域名字段值相同,则判定为匹配到所述目标热点域名。
在具体实现中,将预设时间粒度的若干热点域名保存在ori_domains_list列表中。将获取的全部热点域名数据与预设数据库中已有数据进行比对,将待处理域名和数据库中起始域名字段进行匹配,在匹配成功且数据库中的爬虫标志位字段值为预设爬虫成功标志时,该待处理域域名会被筛除掉。
以下举例对筛选过程进行详细说明:对上述ori_domains_list列表中的全部域名使用Elasticsearch中的Terms(批量查询数组中的元素是否存在)和term(指定字段元素值是否存在)进行多字段聚合查找。使用聚合方式查找Elasticsearch数据库中original_domain(起始域名)字段值是否包含ori_domains_list列表元素,如果包含,且spider_flag=1,表示数据库中已存在待处理域名的描述信息,返回查找到的original_domain字段值。遍历上述聚合查找方式查找到的original_domain字段值,将他们分别添加到inc_domains列表中。对ori_domains_list列表和inc_domains列表求差集,返回不包含描述信息的域名列表exc_domains。其中,spider_flag字段值为爬虫标志位,1为预设爬虫成功标志,域名列表exc_domains中包含筛选后的待处理域名。
步骤S30:根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表。
可以理解的是,顶级域可以为顶级域字段值,其中包含待处理域名对应的主机名以及顶级域名,待爬取列表中包含多个顶级域以及多个域名列表,顶级域与域名列表一一对应,域名列表中包含多个顶级域相同的待处理域名。
在具体实现中,分组的规则是:通过顶级域名提取策略分割出待处理域名的主机名和顶级域名等信息,将主机名和顶级域名通过字符拼接组成顶级域字段值,将具有相同顶级域的待处理域名放在同一个域名列表中,将顶级域和域名列表以key、value键值对的形式组成字典对象,将所有的待处理域名分组完之后,通过预设数据格式转换策略将字典转为列表,则列表中的所有元素以顶级域和域名列表构成的(键,值)元组数组形式存在。
步骤S40:遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息。
需要说明的是,针对同一元组的值(域名列表),只需要爬取该元组中值(域名列表)共有键(顶级域)的描述信息,则同一元组的值(域名列表)都使用该描述信息作为在Elasticsearch数据库中的域名描述信息字段值,将键(顶级域)作为该元组中值(域名列表)在Elasticsearch数据库中的顶级域字段值,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间。
在具体实现中,将多个爬虫策略组合,依据多个爬虫策略的预设优先级设置爬虫模块,当高优先级的爬虫策略未获取到描述信息时,使用下一优先级的爬虫策略再次对顶级域进行爬取,直到获取到对应的描述信息。
步骤S50:将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
可以理解的是,描述信息表征为预设数据库中的域名描述字段值,将爬取到的顶级域的描述信息作为待处理域名对应的域名描述字段值写入预设数据库中。
进一步地,为了提高爬取结果的保存速率,进而提升热点域名描述信息的获取速度,所述步骤S50之后,所述方法还包括:根据所述待处理域名以及所述描述信息确定预设字段值;通过预设批量写入策略将所述预设字段值写入预设数据库,其中,所述预设字段值至少包括:起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识以及域名分类。
需要说明的是,同一元组的值(域名列表)都使用共有键(顶级域)作为在预设数据库中的顶级域字段值。预设批量写入策略可以为bulk批量写入方法,在获取到各待处理域名对应的描述信息之后,将待处理域名相关联信息进行建表,将起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识和域名分类等字段值使用bulk批量写入方法写入Elasticsearch数据库中,批量写入方式减少了域名结果写入到数据库中的时间,提高了爬取结果保存效率。
进一步地,为了避免热点域名重复爬取,对热点域名的爬取情况进行记录,所述通过预设批量写入策略将所述预设字段值写入预设数据库之前,所述方法还包括:在获取到所述描述信息时,将所述域名列表中各待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。
需要说明的是,在爬取成功时,对爬取成功的顶级域对应的待处理域名进行标记,将该待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。在具体实现中,spider_flag=1时,表征该待处理域名的爬虫标志位字段值为预设爬虫成功标志,爬取到描述信息的待处理域名的爬虫标志位设置为预设爬虫成功标志(即为1),未爬取到描述信息的待处理域名的爬虫标志位设为预设爬虫失败标志(即为0)。可以通过判断描述信息字段值是否为空,来确定是否爬取成功,即在描述信息字段值不为空时,表征爬取成功,将爬虫标志位设置为1;在描述信息字段值为空时,表征爬取失败,将爬虫标志位设置为0。通过爬虫标志位的值可以区分该待处理域名有没有被爬取成功,未爬取到描述信息的待处理域名也会写入数据库,在写入到数据库时,爬虫标志位设置为0。
本实施例通过获取预设时间粒度的若干热点域名;对若干热点域名进行筛选,得到筛选后的待处理域名;根据待处理域名的顶级域进行分组,得到待爬取列表,待爬取列表中包含顶级域以及对应的域名列表;遍历待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;将描述信息作为域名列表中各待处理域名对应的描述信息。通过上述方式,对海量热点域名进行筛选以及分组,得到顶级域对应域名列表形式的待爬取列表,针对同一域名列表中的各待处理域名,只需爬取该域名列表对应的顶级域的描述信息,将该顶级域的描述信息作为该域名列表中各待处理域名对应的描述信息,对整个待爬取列表进行爬取,得到海量热点域名对应的描述信息,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间,提高了爬虫速度。
参考图3,图3为本发明获取热点域名描述信息的方法第二实施例的流程示意图。
基于上述第一实施例,本实施例获取热点域名描述信息的方法的所述步骤S40,包括:
步骤S401:遍历所述待爬取列表,根据预设优先级顺序调用第一爬取策略,根据所述第一爬取策略对遍历到的顶级域进行爬取。
可以理解的是,预设优先级顺序为预先设置的,例如第一爬取策略设置为最高优先级,第二爬取策略次之,第三爬取策略设置为最低优先级,预设优先级对应于多个爬取策略,第一爬取策略可以为Urllib方法、requests方法以及BS4-BeautifulSoup4解析等爬虫方式中的任一种方式,本实施例对此不加以限制。
步骤S402:在未爬取到对应的描述信息时,根据所述预设优先级顺序调用第二爬取策略,根据所述第二爬取策略对遍历到的顶级域进行爬取,以获取对应的描述信息。
在具体实现中,将多个爬虫策略组合,依据多个爬虫策略的不同的优先级设置爬虫模块,爬虫模块设计成由优先级决定不同爬虫方式串行的逻辑架构,针对遍历到的每一个元素(元素由顶级域和对应的域名列表构成的元组)会调用爬取模块,当高优先级的爬虫策略未获取到描述信息时,使用下一优先级的爬虫策略再次对该顶级域进行爬取,直到获取到对应的描述信息。当爬虫程序获取到顶级域的描述信息或者爬虫模块执行完之后,爬虫程序终止,使用该方式提高了热点域名的爬虫成功率。
进一步地,步骤S20之后,所述方法还包括:在未爬取到对应的描述信息时,根据预设优先级顺序调用第三爬取策略;根据所述第三爬取策略对遍历到的顶级域进行爬取,以获取对应的描述信息。
以下举例对爬虫过程进行详细说明:遍历待爬取列表,待爬取列表为(键,值)元组数组列表;对遍历到的每一个(键,值)元组数据中的顶级域(键)调用爬虫模块进行爬虫;先对顶级域使用爬虫方式1进行爬虫,当未获取到域名描述信息时,继续执行使用爬虫方式2对顶级域进行爬虫的步骤,当未获取到域名描述信息时,继续执行使用爬虫方式3对顶级域进行爬虫的步骤;直到获取到域名描述信息或者爬虫模块执行完之后终止。
本实施例通过对待处理域名进行爬虫时,预设优先级设置多种爬虫策略,不仅仅局限于一种爬虫策略,当高优先级的爬虫策略获取不到待处理域名描述信息结果时,使用相较于上述爬虫策略优先级低的爬虫策略进行爬虫,直至爬取到描述信息,提高了热点域名的爬虫成功率。
参考图4,图4为本发明获取热点域名描述信息的方法第三实施例的流程示意图。
基于上述第一实施例以及第二实施例,本实施例获取热点域名描述信息的方法的所述步骤S30,包括:
步骤S301:通过顶级域名提取策略分割出所述待处理域名对应的主机名和顶级域名。
可以理解的是,顶级域名提取策略可以为使用tldextract顶级域名提取模块编译的程序,顶级域名被称为互联网域名等级之中的最高级的域名,常见的表现形式是由一串字母,中间有一个标点符号隔开,比如baidu.com,而二级域名常见的表现形式为一串字母有俩个标点符号隔开,比如pan.baidu.com,其中,pan就是主机名。
步骤S302:将所述主机名和所述顶级域名通过字符拼接组成顶级域字段值。
需要说明的是,字符拼接的过程可以采用格式化字符串函数str.format进行拼接,得到顶级域字段值。
步骤S303:根据所述顶级域字段值对所述待处理域名进行分组,确定所述顶级域字段值对应的域名列表。
可以理解的是,顶级域字段值对应的域名列表中包含顶级域字段值相同的待处理域名。
步骤S304:根据所述顶级域字段值以及所述域名列表构成待爬取列表。
进一步地,所述步骤S304,包括:将所述顶级域字段值以及所述域名列表以键值对的形式组成字典对象;通过预设数据格式转换策略将所述字典对象转换为待爬取列表中的元组,以构成待爬取列表。
需要说明的是,将字典转换为列表,以便后续遍历爬取,预设数据格式转换策略可以为根据python编程语言或者其他编程语言编译的字典转换为列表程序。
以下举例对分组过程进行详细说明:遍历筛选后的待处理域名(exc_domains列表),使用tldextract顶级域名提取模块提取待处理域名的主机名和顶级域名。将上述提取到的主机名和顶级域名通过格式化字符串函数str.format生成top_domain顶级域字段。判断top_domain在top_domains字典中是否存在,如果存在,则程序执行在top_domains字典中的top_domain键对应的值列表中添加属于该键(顶级域)的域名的步骤。如果不存在,则程序执行在top_domains字典中新建以top_domain为key,以空列表为value的字典对象的步骤。使用字典转列表的方法,对上述top_domains字典处理,返回可遍历的(键,值)元组数组列表。
参照图5,图5为本发明获取热点域名描述信息的方法一实施例的获取描述信息流程示意图;图5表征获取描述信息的一种方式,具体过程为:
获取指定时间粒度的全部热点域名;
对热点域名进行筛选:判断数据库中是否存在待处理域名;若是,则判断爬虫标志位是否为1;在数据库中不存在待处理域名或者爬虫标志位不为1时,将待处理域名添加入列表2;在在数据库中存在待处理域名并且爬虫标志位为1时,将待处理域名添加入列表1;将所有剩余域名组成列表2;
对待处理域名进行分组:遍历列表2提取各待处理域名的顶级域;判断顶级域在字典中是否存在;若否,则在字典中添加以该顶级域为key,以空列表为value的对象;在顶级域在字典中存在或者成功在字典中添加以该顶级域为key,以空列表为value的对象时,向字典中键(顶级域)对应的值列表中添加属于该键的域名,列表中各待处理域名对应的顶级域相同;将字典转换为可遍历的(键,值)元组数组列表;
对分组后的列表进行爬取:遍历上述(键,值)元组数组列表,遍历过程中,对遍历到的每一个元组,调用爬取模块爬取元组中顶级域的描述信息,爬取模块中主要包括:判断爬虫方法1是否有获取到描述信息;若否,判断爬虫方法2是否有获取到描述信息;若否,则判断爬虫方法3是否有获取到描述信息;在任一爬虫方法获取到描述信息时,爬取模块执行完成;
对数据进行写入:将待处理域名相关属性字段值写入es数据库(Elasticsearch数据库)中。
本实施例通过顶级域名提取策略分割出待处理域名对应的主机名和顶级域名,通过将主机名和顶级域名拼接组成顶级域字段值,根据顶级域字段值对待处理域名进行分组,将顶级域字段值相同的待处理域名放在同一域名列表内,针对同一域名列表中的各待处理域名,只需爬取该域名列表对应的顶级域字段值的描述信息,将该顶级域字段值的描述信息作为该域名列表中各待处理域名对应的描述信息,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间,提高了爬虫速度。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有获取热点域名描述信息的程序,所述获取热点域名描述信息的程序被处理器执行时实现如上文所述的获取热点域名描述信息的方法的步骤。
参照图6,图6为本发明获取热点域名描述信息的装置第一实施例的结构框图。
如图6所示,本发明实施例提出的获取热点域名描述信息的装置包括:。
获取模块10,用于获取预设时间粒度的若干热点域名。
需要说明的是,预设时间粒度为提前设置的时间值,例如,每5分钟、每1小时、每个9点至18点等等,热点域名为域名服务器根据对各域名的访问量进行排序确定的,在具体实现中,域名服务器获取预设时间粒度内的各域名的访问记录,根据访问量从大到小对域名进行排序,截取访问量超过一定大小的域名作为热点域名。
筛选模块20,用于对所述若干热点域名进行筛选,得到筛选后的待处理域名。
可以理解的是,对若干热点域名进行筛选的过程可以包括对重复爬取的热点域名进行筛除,也可以包括对若干热点域名中的无效域名进行筛选,本实施例对此不加以限制。
进一步地,为了避免重复爬取,进一步提升热点域名描述信息的爬取速度,所述筛选模块20,还用于遍历所述若干热点域名,将遍历到的目标热点域名与预设数据库进行匹配;在匹配到所述目标热点域名时,确定所述预设数据库中所述目标热点域名对应的爬虫标志位;在所述爬虫标志位为预设爬虫成功标志时,将所述目标热点域名筛除,以得到筛选后的待处理域名。
需要说明的是,预设数据库为存储域名相关信息的数据库,在具体实现中,预设数据库为Elasticsearch数据库,每隔一定的时间,对这段时间内的热点域名进行爬取,将爬取得到的相关信息存储在Elasticsearch数据库中,其中包括爬虫标志位,爬虫标志位表征该条热点域名是否已成功爬取,如果已成功爬取,则将该条热点域名对应的爬虫标志位设置为预设爬虫成功标志。也就是说,在检测到若干热点域名中存在已经爬取成功的热点域名,则将这些已经爬取成功的热点域名筛除掉,将剩余的热点域名作为待处理域名。
具体地,所述筛选模块20,还用于将遍历到的目标热点域名与预设数据库中的起始域名字段值进行匹配;若所述目标热点域名与所述起始域名字段值相同,则判定为匹配到所述目标热点域名。
在具体实现中,将预设时间粒度的若干热点域名保存在ori_domains_list列表中。将获取的全部热点域名数据与预设数据库中已有数据进行比对,将待处理域名和数据库中起始域名字段进行匹配,在匹配成功且数据库中的爬虫标志位字段值为预设爬虫成功标志时,该待处理域域名会被筛除掉。
以下举例对筛选过程进行详细说明:对上述ori_domains_list列表中的全部域名使用Elasticsearch中的Terms(批量查询数组中的元素是否存在)和term(指定字段元素值是否存在)进行多字段聚合查找。使用聚合方式查找Elasticsearch数据库中original_domain(起始域名)字段值是否包含ori_domains_list列表元素,如果包含,且spider_flag=1,表示数据库中已存在待处理域名的描述信息,返回查找到的original_domain字段值。遍历上述聚合查找方式查找到的original_domain字段值,将他们分别添加到inc_domains列表中。对ori_domains_list列表和inc_domains列表求差集,返回不包含描述信息的域名列表exc_domains。其中,spider_flag字段值为爬虫标志位,1为预设爬虫成功标志,域名列表exc_domains中包含筛选后的待处理域名。
分组模块30,用于根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表。
可以理解的是,顶级域可以为顶级域字段值,其中包含待处理域名对应的主机名以及顶级域名,待爬取列表中包含多个顶级域以及多个域名列表,顶级域与域名列表一一对应,域名列表中包含多个顶级域相同的待处理域名。
在具体实现中,分组的规则是:通过顶级域名提取策略分割出待处理域名的主机名和顶级域名等信息,将主机名和顶级域名通过字符拼接组成顶级域字段值,将具有相同顶级域的待处理域名放在同一个域名列表中,将顶级域和域名列表以key、value键值对的形式组成字典对象,将所有的待处理域名分组完之后,通过预设数据格式转换策略将字典转为列表,则列表中的所有元素以顶级域和域名列表构成的(键,值)元组数组形式存在。
爬取模块40,用于遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息。
需要说明的是,针对同一元组的值(域名列表),只需要爬取该元组中值(域名列表)共有键(顶级域)的描述信息,则同一元组的值(域名列表)都使用该描述信息作为在Elasticsearch数据库中的域名描述信息字段值,将键(顶级域)作为该元组中值(域名列表)在Elasticsearch数据库中的顶级域字段值,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间。
在具体实现中,将多个爬虫策略组合,依据多个爬虫策略的预设优先级设置爬虫模块,当高优先级的爬虫策略未获取到描述信息时,使用下一优先级的爬虫策略再次对顶级域进行爬取,直到获取到对应的描述信息。
写入模块50,用于将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
可以理解的是,描述信息表征为预设数据库中的域名描述字段值,将爬取到的顶级域的描述信息作为待处理域名对应的域名描述字段值写入预设数据库中。
进一步地,为了提高爬取结果的保存速率,进而提升热点域名描述信息的获取速度,所述写入模块50,还用于根据所述待处理域名以及所述描述信息确定预设字段值;通过预设批量写入策略将所述预设字段值写入预设数据库,其中,所述预设字段值至少包括:起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识以及域名分类。
需要说明的是,同一元组的值(域名列表)都使用共有键(顶级域)作为在预设数据库中的顶级域字段值。预设批量写入策略可以为bulk批量写入方法,在获取到各待处理域名对应的描述信息之后,将待处理域名相关联信息进行建表,将起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识和域名分类等字段值使用bulk批量写入方法写入Elasticsearch数据库中,批量写入方式减少了域名结果写入到数据库中的时间,提高了爬取结果保存效率。
进一步地,为了避免热点域名重复爬取,对热点域名的爬取情况进行记录,所述写入模块50,还用于在获取到所述描述信息时,将所述域名列表中各待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。
需要说明的是,在爬取成功时,对爬取成功的顶级域对应的待处理域名进行标记,将该待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。在具体实现中,spider_flag=1时,表征该待处理域名的爬虫标志位字段值为预设爬虫成功标志,爬取到描述信息的待处理域名的爬虫标志位设置为预设爬虫成功标志(即为1),未爬取到描述信息的待处理域名的爬虫标志位设为预设爬虫失败标志(即为0)。可以通过判断描述信息字段值是否为空,来确定是否爬取成功,即在描述信息字段值不为空时,表征爬取成功,将爬虫标志位设置为1;在描述信息字段值为空时,表征爬取失败,将爬虫标志位设置为0。通过爬虫标志位的值可以区分该待处理域名有没有被爬取成功,未爬取到描述信息的待处理域名也会写入数据库,在写入到数据库时,爬虫标志位设置为0。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
本实施例通过获取预设时间粒度的若干热点域名;对若干热点域名进行筛选,得到筛选后的待处理域名;根据待处理域名的顶级域进行分组,得到待爬取列表,待爬取列表中包含顶级域以及对应的域名列表;遍历待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;将描述信息作为域名列表中各待处理域名对应的描述信息。通过上述方式,对海量热点域名进行筛选以及分组,得到顶级域对应域名列表形式的待爬取列表,针对同一域名列表中的各待处理域名,只需爬取该域名列表对应的顶级域的描述信息,将该顶级域的描述信息作为该域名列表中各待处理域名对应的描述信息,对整个待爬取列表进行爬取,得到海量热点域名对应的描述信息,从而大大减少了海量热点域名的爬虫数量,减少了整体爬虫时间,提高了爬虫速度。
在一实施例中,所述爬取模块40,还用于:遍历所述待爬取列表,根据预设优先级顺序调用第一爬取策略,根据所述第一爬取策略对遍历到的顶级域进行爬取;
在未爬取到对应的描述信息时,根据所述预设优先级顺序调用第二爬取策略,根据所述第二爬取策略对遍历到的顶级域进行爬取,以获取对应的描述信息。
在一实施例中,所述分组模块30,还用于:通过顶级域名提取策略分割出所述待处理域名对应的主机名和顶级域名;
将所述主机名和所述顶级域名通过字符拼接组成顶级域字段值;
根据所述顶级域字段值对所述待处理域名进行分组,确定所述顶级域字段值对应的域名列表;
根据所述顶级域字段值以及所述域名列表构成待爬取列表。
在一实施例中,所述分组模块30,还用于:将所述顶级域字段值以及所述域名列表以键值对的形式组成字典对象;
通过预设数据格式转换策略将所述字典对象转换为待爬取列表中的元组,以构成待爬取列表。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的获取热点域名描述信息的方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种获取热点域名描述信息的方法,其特征在于,所述获取热点域名描述信息的方法包括:
获取预设时间粒度的若干热点域名;
对所述若干热点域名进行筛选,得到筛选后的待处理域名;
根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表;
遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;
将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
2.如权利要求1所述的获取热点域名描述信息的方法,其特征在于,遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息,包括:
遍历所述待爬取列表,根据预设优先级顺序调用第一爬取策略,根据所述第一爬取策略对遍历到的顶级域进行爬取;
在未爬取到对应的描述信息时,根据所述预设优先级顺序调用第二爬取策略,根据所述第二爬取策略对遍历到的顶级域进行爬取,以获取对应的描述信息,第一爬取策略设置为最高优先级,第二爬取策略设置为次高优先级。
3.如权利要求1所述的获取热点域名描述信息的方法,其特征在于,根据所述待处理域名的顶级域进行分组,得到待爬取列表,包括:
通过顶级域名提取策略分割出所述待处理域名对应的主机名和顶级域名;
将所述主机名和所述顶级域名通过字符拼接组成顶级域字段值;
根据所述顶级域字段值对所述待处理域名进行分组,确定所述顶级域字段值对应的域名列表;
根据所述顶级域字段值以及所述域名列表构成待爬取列表。
4.如权利要求3所述的获取热点域名描述信息的方法,其特征在于,所述根据所述顶级域字段值以及所述域名列表构成待爬取列表,包括:
将所述顶级域字段值以及所述域名列表以键值对的形式组成字典对象;
通过预设数据格式转换策略将所述字典对象转换为待爬取列表中的元组,以构成待爬取列表。
5.如权利要求1所述的获取热点域名描述信息的方法,其特征在于,所述将所述描述信息作为所述域名列表中各待处理域名对应的描述信息之后,所述方法还包括:
根据所述待处理域名以及所述描述信息确定预设字段值;
通过预设批量写入策略将所述预设字段值写入预设数据库,其中,所述预设字段值至少包括:起始域名、顶级域、爬虫标志位、域名描述、域名标题、结果代码、域名标识以及域名分类。
6.如权利要求5所述的获取热点域名描述信息的方法,其特征在于,所述通过预设批量写入策略将所述预设字段值写入预设数据库之前,所述方法还包括:
在获取到所述描述信息时,将所述域名列表中各待处理域名对应的爬虫标志位字段值设置为预设爬虫成功标志。
7.如权利要求1至6中任一项所述的获取热点域名描述信息的方法,其特征在于,所述对所述若干热点域名进行筛选,得到筛选后的待处理域名,包括:
遍历所述若干热点域名,将遍历到的目标热点域名与预设数据库进行匹配;
在匹配到所述目标热点域名时,确定所述预设数据库中所述目标热点域名对应的爬虫标志位;
在所述爬虫标志位为预设爬虫成功标志时,将所述目标热点域名筛除,以得到筛选后的待处理域名。
8.一种获取热点域名描述信息的装置,其特征在于,所述获取热点域名描述信息的装置包括:
获取模块,用于获取预设时间粒度的若干热点域名;
筛选模块,用于对所述若干热点域名进行筛选,得到筛选后的待处理域名;
分组模块,用于根据所述待处理域名的顶级域进行分组,得到待爬取列表,所述待爬取列表中包含所述顶级域以及对应的域名列表;
爬取模块,用于遍历所述待爬取列表,对遍历到的顶级域进行爬取,得到对应的描述信息;
写入模块,用于将所述描述信息作为所述域名列表中各待处理域名对应的描述信息。
9.一种获取热点域名描述信息的设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的获取热点域名描述信息的程序,所述获取热点域名描述信息的程序配置为实现如权利要求1至7中任一项所述的获取热点域名描述信息的方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有获取热点域名描述信息的程序,所述获取热点域名描述信息的程序被处理器执行时实现如权利要求1至7任一项所述的获取热点域名描述信息的方法的步骤。
CN202110107562.6A 2021-01-26 2021-01-26 获取热点域名描述信息的方法、装置、设备及存储介质 Active CN112784134B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110107562.6A CN112784134B (zh) 2021-01-26 2021-01-26 获取热点域名描述信息的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110107562.6A CN112784134B (zh) 2021-01-26 2021-01-26 获取热点域名描述信息的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112784134A CN112784134A (zh) 2021-05-11
CN112784134B true CN112784134B (zh) 2024-04-19

Family

ID=75757991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110107562.6A Active CN112784134B (zh) 2021-01-26 2021-01-26 获取热点域名描述信息的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112784134B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291727A (zh) * 2016-03-31 2017-10-24 北京国双科技有限公司 一种爬虫的爬取方法及装置
CN107679085A (zh) * 2017-09-01 2018-02-09 广州大学 基于搜索及网页爬虫的数据抓取算法
CN109241292A (zh) * 2018-08-13 2019-01-18 恒安嘉新(北京)科技股份公司 一种基于主被动数据建立域名服务器体系知识图谱的方法
CN110719344A (zh) * 2019-10-10 2020-01-21 北京知道创宇信息技术股份有限公司 域名获取方法、装置、电子设备及存储介质
CN112118328A (zh) * 2020-08-17 2020-12-22 互联网域名系统北京市工程研究中心有限公司 品牌域名注册信息的查询及分析方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189489A1 (en) * 2012-12-31 2014-07-03 Go Daddy Operating Company, LLC Creating and using a tld markup language
US20140359519A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Determination of Intended Navigation Destination Based on User-Generated and Analysis-Based Information
US20150156168A1 (en) * 2013-12-04 2015-06-04 Go Daddy Operating Company, LLC Suggesting name identifiers using interactive keywords

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291727A (zh) * 2016-03-31 2017-10-24 北京国双科技有限公司 一种爬虫的爬取方法及装置
CN107679085A (zh) * 2017-09-01 2018-02-09 广州大学 基于搜索及网页爬虫的数据抓取算法
CN109241292A (zh) * 2018-08-13 2019-01-18 恒安嘉新(北京)科技股份公司 一种基于主被动数据建立域名服务器体系知识图谱的方法
CN110719344A (zh) * 2019-10-10 2020-01-21 北京知道创宇信息技术股份有限公司 域名获取方法、装置、电子设备及存储介质
CN112118328A (zh) * 2020-08-17 2020-12-22 互联网域名系统北京市工程研究中心有限公司 品牌域名注册信息的查询及分析方法和系统

Also Published As

Publication number Publication date
CN112784134A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
US10250526B2 (en) Method and apparatus for increasing subresource loading speed
JP5148278B2 (ja) テキスト分割のために言語を選択する方法およびシステム
CN108737423B (zh) 基于网页关键内容相似性分析的钓鱼网站发现方法及系统
CN109768992B (zh) 网页恶意扫描处理方法及装置、终端设备、可读存储介质
US11256912B2 (en) Electronic form identification using spatial information
US20180139222A1 (en) Method and device for detecting website attack
CN103888490A (zh) 一种全自动的web客户端人机识别的方法
WO2018095411A1 (zh) 一种网页聚类方法及装置
US20120143844A1 (en) Multi-level coverage for crawling selection
CN108900554B (zh) Http协议资产检测方法、系统、设备及计算机介质
CN111163072B (zh) 机器学习模型中特征值的确定方法、装置及电子设备
CN111008348A (zh) 反爬虫方法、终端、服务器及计算机可读存储介质
CN109391620B (zh) 异常行为判定模型的建立方法、系统、服务器及存储介质
US11836331B2 (en) Mathematical models of graphical user interfaces
CN108494728B (zh) 防止流量劫持的黑名单库创建方法、装置、设备及介质
US11657078B2 (en) Automatic identification of document sections to generate a searchable data structure
CN111026765A (zh) 严格平衡二叉树的动态处理方法、设备、存储介质及装置
CN110825947B (zh) Url去重方法、装置、设备与计算机可读存储介质
CN112784134B (zh) 获取热点域名描述信息的方法、装置、设备及存储介质
US10839066B1 (en) Distinguishing human from machine input using an animation
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
CN114661975A (zh) 一种web首页指纹特征的提取方法、装置及介质
US11120129B2 (en) System and method for detecting leaked documents on a computer network
CN113111274A (zh) 一种检测网页中隐藏暗链的方法和装置
CN110825976A (zh) 网站页面的检测方法、装置、电子设备及介质

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