域名批量打标分类工具

域名批量打标分类工具

aliases:
tags:
author: Aura Service
created: 2025-07-21T14:10:26
updated: 2025-07-21T14:10:26

域名批量打标分类工具

一、工具概述

本工具是一款用于批量处理域名的自动化脚本,支持域名有效性检测、IP解析、ICP备案信息查询、页面内容抓取及分类打标等功能,并将处理结果存储至数据库,同时提供进度监控与邮件通知能力。工具基于Python开发,通过多线程并发提升处理效率,适用于域名信息采集、合规检测、分类归档等场景。

二、核心功能

  1. 工具通过可配置的功能开关,灵活支持以下核心能力:
功能类别 具体能力
域名基础信息获取 检测域名有效性(支持HTTP/HTTPS协议判断)、解析域名对应IP地址
网络信息查询 获取IP归属地及运营商信息、查询域名ICP备案信息(单位名称、备案号、时间等)
页面内容处理 抓取页面HTML内容、提取纯文本及JS代码、基于关键词自动分类打标
自动化与监控 多线程并发处理、数据库存储结果、定时进度汇报、异常邮件通知
  1. 根据接口不同所以内置了纯json解析、HTML解析、chromedrive解析几种形式,以解决接口频繁等问题。

三、核心配置说明

工具通过配置参数控制运行逻辑,核心参数如下(位于代码开头):

1. 功能开关配置

用于控制是否启用特定功能,按需设置True/False

 复制代码 隐藏代码
resolve_ip_flag = False  # 解析域名IP地址 get_ip_info_flag = False  # 获取IP归属地信息 get_icp_info_flag = True  # 获取ICP备案信息 is_valid_falg = False  # 检测域名有效性及协议 get_page_flag = False  # 页面内容抓取及解析 get_page_chrome_flag = True  # 是否用ChromeDriver抓取页面(反爬友好)

2. 数据库与邮件配置

 复制代码 隐藏代码
# 数据库连接地址(格式:mysql+pymysql://用户名:密码@地址:端口/数据库名) DATABASE_URI = 'mysql+pymysql://databasename:username@ipordomain:3306/domain?charset=utf8mb4' # 邮件通知配置(用于进度汇报、错误提醒) email_sender = 'senderemail@163.com'  # 发送邮箱 email_sender_pwd = 'senderpwd'  # 邮箱授权码(非登录密码) email_to_reciver = 'xxx@qq.com,yyy@qq.com'  # 接收邮箱(多个用逗号分隔)

3. 并发与监控配置

 复制代码 隐藏代码
MAX_THREADS = 20  # 最大并发线程数(根据服务器性能调整) wathc_dog_flag = False  # 是否启用进度监控(定时邮件汇报) watch_dog_time = 1800  # 监控间隔时间(秒,默认30分钟) skip_wait_time = 300  # API超时后跳过请求的时间(秒,避免频繁失败)

四、核心逻辑与流程

工具运行流程清晰,基于多线程并发处理域名,核心步骤如下:

  1. 初始化准备
    建立数据库连接(通过SQLAlchemy),创建会话用于读取待处理域名和存储结果;启动进度监控线程(若启用)。

  2. 域名获取
    从数据库中筛选待处理域名,默认条件为:已验证有效(validity≠invalid)且ICP备案信息缺失(licence_numNone/暂无/未知)。

  3. 并发处理
    通过线程池(ThreadPoolExecutor)调用process_domain函数,按配置开关依次执行:  

     复制代码 隐藏代码
    graph LR A[域名有效性检测] --> B[IP解析] B --> C[IP归属地获取] C --> D[ICP备案信息查询] D --> E[页面内容抓取] E --> F[分类打标] F --> G[结果存储至数据库]
  4. 结果存储与监控
    处理结果(IP、ICP信息、页面内容、分类标签等)实时更新至数据库;监控线程定时统计处理进度,通过邮件发送汇报。

五、使用指南

1. 环境准备

  • 依赖安装
    执行以下命令安装所需库:
     复制代码 隐藏代码
    pip install requests beautifulsoup4 sqlalchemy fake_useragent selenium chromedriver-autoinstaller pymysql
  • 数据库准备
    需提前创建MySQL数据库,表结构需与代码中Domain类匹配(至少包含domainiplicence_numpage_type等字段)。  
  • 浏览器配置
    若启用get_page_chrome_flag,需安装Chrome浏览器(chromedriver-autoinstaller会自动匹配驱动)。

2. 配置修改

  • 功能开关:根据需求开启所需功能(例如仅需ICP备案查询则设get_icp_info_flag=True)。  
  • 数据库连接:修改DATABASE_URI为实际数据库地址,格式为:
    mysql+pymysql://用户名:密码@数据库IP:端口/数据库名?charset=utf8mb4。  
  • 邮件配置
    • email_sender:填写发送邮箱(如163邮箱);  
    • email_sender_pwd:填写邮箱授权码(需在邮箱设置中开启SMTP服务);  
    • email_to_reciver:填写接收通知的邮箱(多个用逗号分隔)。  

3. 运行步骤

  1. 导入域名数据
    向数据库domain表中导入待处理域名,示例SQL:
     复制代码 隐藏代码
    INSERT INTO domain (domain) VALUES ('example.com'), ('test.gov.cn');
  2. 启动工具
    执行脚本:
     复制代码 隐藏代码
    python main.py
  3. 查看结果
    处理完成后,数据库中domain表将更新字段:ip(IP地址)、licence_num(ICP备案号)、page_type(分类标签)等。

4. 注意事项

  • API稳定性:工具依赖第三方免费API获取ICP/IP信息,可能存在不稳定或限流,建议避免高频次请求。  
  • 线程控制MAX_THREADS需根据服务器性能调整(建议≤50),避免数据库连接溢出。  
  • 反爬规避:页面抓取启用get_page_chrome_flag可降低被反爬概率,若仍失败可延长请求间隔。  

六、域名来源说明

工具默认从数据库获取待处理域名,具体逻辑如下:  

  1. 查询条件:通过session.query(Domain).filter(...)筛选满足以下条件的域名:
    • 已验证为有效(validity≠invalid);  
    • ICP备案信息缺失(licence_numNone/暂无/未知)。  
  2. 扩展来源:若需从其他渠道获取域名(如文本文件),可扩展代码:
     复制代码 隐藏代码
    # 从文本文件读取域名 def read_domains_from_file(file_path):    with open(file_path, 'r') as f:        return [line.strip() for line in f if line.strip()] domains = read_domains_from_file('domains.txt')  # 替换数据库查询逻辑

七、免责声明

  1. 本代码为个人编写,仅供学习研究使用,不保证完整性或准确性。  
  2. 工具中使用的第三方API来源于网络收集,其可用性、数据准确性无法保证,可能存在随时失效风险,作者不承担责任。  
  3. 功能实现基于作者当时需求,可能存在逻辑漏洞,生产环境使用前需全面测试,并替换为稳定API服务。  
  4. 使用本工具需遵守相关法律法规,不得用于非法用途,用户自行承担使用风险。

通过本工具,可高效完成域名批量信息采集与分类,助力域名管理、合规检测等场景。如需扩展功能(如新增分类标签、对接其他API),可基于现有框架进行二次开发。

八、代码下载地址

下载:https://wwcy.lanzouq.com/ivD1H31hrkfe 密码:52pj 解压密码:52pj

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容