过期域名批量查询工具「附:域名状态查询工具」

大家好,今天李杰精心为你准备了干货过期域名批量查询工具,域名状态查询工具,还有关于域名,文件,时间这些的精品干货文章,思路很重要,希望我整理分享的这篇文章对你能有一定的帮助!

Python批量查询域名whois信息、到期时间小工具

前言

由于公司有大量域名信息需要定期查看是否需要续期,前期都是人工操作比较耗时、耗力。所以衍生了这个小工具。

实现了查询域名到期时间、并且将近7天内到期的域名在Excel中标红,当然你也可以添加短信提醒和邮件提醒

代码步骤

1、将域名粘贴到指定txt文件中

比如:domain.txt

Python批量查询域名whois信息、到期时间小工具

2、将指定txt文件中内容读取到list中

# 批量读取文件中的域名
def read_file(filePath):
    with open(filePath, "r") as f:  # 打开文件
        data = f.readlines()  # 读取文件
        return data

3、通过某网站获取域名到期时间

# 通过某网站获取域名到期时间
def get_expiry_date(url_list):
    url_expiry_date_list = []
    for url in url_list:
        url_expiry_date_dict = {}
        time.sleep(random.randrange(3))
        req_whois = urllib.request.urlopen('http://whois.xxxxxx.com/' + url)
        result = req_whois.read().decode()
        html = etree.HTML(result)

        endTimes = html.xpath('//a[@id="update_a2"]/preceding-sibling::span[1]/text()')
        if len(endTimes) > 0:
            endTime = endTimes[0].replace('年', '-').replace('月', '-').replace('日', '')
        else:
            errorInfo = html.xpath('//div[@class="IcpMain02"]')
            endTime = errorInfo[0].xpath('string(.)').strip()
        url_expiry_date_dict['url'] = url.replace('n', '')
        url_expiry_date_dict['endTime'] = endTime
        pprint.pprint(url_expiry_date_dict)
        url_expiry_date_list.append(url_expiry_date_dict)
    pprint.pprint(url_expiry_date_list)
    return url_expiry_date_list

4、将结果写入Excel文件

# 写入Excel文件
def write_excel(domain_list):
    # 创建一个新的文件
    with xlsxwriter.Workbook('host_ip.xlsx') as workbook:
        # 添加一个工作表
        worksheet = workbook.add_worksheet('域名信息')
        # 设置一个加粗的格式
        bold = workbook.add_format({"bold": True})
        # 分别设置一下 A 和 B 列的宽度
        worksheet.set_column('A:A', 50)
        worksheet.set_column('B:B', 15)
        # 先把表格的抬头写上,并设置字体加粗
        worksheet.write('A1', '域名', bold)
        worksheet.write('B1', '信息', bold)
        # 设置数据写入文件的初始行和列的索引位置
        row = 1
        col = 0
        for domain_ex_date in domain_list:
            url = domain_ex_date['url']
            endTime = domain_ex_date['endTime']
            currDate = datetime.today().date()
            try:
                endDate = datetime.strptime(endTime, "%Y-%m-%d").date()
                diffDate = endDate - currDate
                if diffDate.days <= 7:
                    style = workbook.add_format({'font_color': "red"})
                else:
                    style = workbook.add_format({'font_color': "black"})
            except:
                style = workbook.add_format({'font_color': "red"})
            pprint.pprint(url + ': ' + endTime)
            worksheet.write(row, col, url, style)
            worksheet.write(row, col + 1, endTime, style)
            row += 1

5、运行

urls = read_file('domain.txt')
urls_list = get_expiry_date(urls)
write_excel(urls_list)

运行结果:

Python批量查询域名whois信息、到期时间小工具

6、完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:高效码农

import pprint
import time
import random
import xlsxwriter
from datetime import datetime
import urllib.request
from lxml import etree


# 批量读取文件中的域名
def read_file(filePath):
    with open(filePath, "r") as f:  # 打开文件
        data = f.readlines()  # 读取文件
        return data


# 通过某网站获取域名到期时间
def get_expiry_date(url_list):
    url_expiry_date_list = []
    for url in url_list:
        url_expiry_date_dict = {}
        time.sleep(random.randrange(3))
        req_whois = urllib.request.urlopen('http://whois.xxxxxx.com/' + url)
        result = req_whois.read().decode()
        html = etree.HTML(result)

        endTimes = html.xpath('//a[@id="update_a2"]/preceding-sibling::span[1]/text()')
        if len(endTimes) > 0:
            endTime = endTimes[0].replace('年', '-').replace('月', '-').replace('日', '')
        else:
            errorInfo = html.xpath('//div[@class="IcpMain02"]')
            endTime = errorInfo[0].xpath('string(.)').strip()
        url_expiry_date_dict['url'] = url.replace('n', '')
        url_expiry_date_dict['endTime'] = endTime
        pprint.pprint(url_expiry_date_dict)
        url_expiry_date_list.append(url_expiry_date_dict)
    pprint.pprint(url_expiry_date_list)
    return url_expiry_date_list


# 写入Excel文件
def write_excel(domain_list):
    # 创建一个新的文件
    with xlsxwriter.Workbook('host_ip.xlsx') as workbook:
        # 添加一个工作表
        worksheet = workbook.add_worksheet('域名信息')
        # 设置一个加粗的格式
        bold = workbook.add_format({"bold": True})
        # 分别设置一下 A 和 B 列的宽度
        worksheet.set_column('A:A', 50)
        worksheet.set_column('B:B', 15)
        # 先把表格的抬头写上,并设置字体加粗
        worksheet.write('A1', '域名', bold)
        worksheet.write('B1', '信息', bold)
        # 设置数据写入文件的初始行和列的索引位置
        row = 1
        col = 0
        for domain_ex_date in domain_list:
            url = domain_ex_date['url']
            endTime = domain_ex_date['endTime']
            currDate = datetime.today().date()
            try:
                endDate = datetime.strptime(endTime, "%Y-%m-%d").date()
                diffDate = endDate - currDate
                if diffDate.days <= 7:
                    style = workbook.add_format({'font_color': "red"})
                else:
                    style = workbook.add_format({'font_color': "black"})
            except:
                style = workbook.add_format({'font_color': "red"})
            pprint.pprint(url + ': ' + endTime)
            worksheet.write(row, col, url, style)
            worksheet.write(row, col + 1, endTime, style)
            row += 1


urls = read_file('domain.txt')
urls_list = get_expiry_date(urls)
write_excel(urls_list)

好了,这篇文章就到这里吧,希望能帮到各位朋友,如果你认真看完了这篇过期域名批量查询工具「附:域名状态查询工具」文章,感觉自己收获很多,可以收藏寂寞网哈!

本文发布者:万事通,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/19065.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年11月30日 09:46
下一篇 2022年11月30日 09:49

相关推荐

  • pdf已加密如何解密:最新教你一秒钟破解pdf

    很高兴又和小伙伴们见面了,这次何豆主要整理了一些关于pdf已加密如何解密,教你一秒钟破解pdf的事情,以及关于密码,文件,转换器这些一系列的精品相关干货,其实这个内容对于新手来说还是挺重要的,因为涉及面很大。如果你认真读了,一定会有所收获! 大家都知道,有的时候为了保护重要文档,我们会将文件加上密码。 但是,如果是在工作当中需要经常使用的文件,每打开一次就要…

    2022年12月29日 自媒体
  • 提前感知这次“五一”假期有多火:酒店预订量涨4倍、淄博订单涨20倍

    大家好,我是本站的报道员李正瀚,为您送上最快最全面的新闻资讯,最近,提前感知这次“五一”假期有多火:酒店预订量涨4倍、淄博订单涨20倍的热度不断攀升,成为了社交媒体上的热门话题之一。下面就让我为大家详细介绍一下这个事件的具体情况吧! 4月21日消息,下周我们就要迎来五一小长假了,这次通过调休实现了五天假期,很多人都有出行计划。 虽然还有一个多星期才放假,但多…

    2023年4月21日
  • 粥底火锅会不会上火 推荐吃粥底火锅会胖吗

    美好的一天从这里开始,今天卫天泽将和大家分享一些粥底火锅会不会上火,吃粥底火锅会胖吗的实践经验,还有底火,脂肪,火锅,放入,可能会的一系列实用干货和技巧分享,在成功的路上,没有什么比清晰的思路更重要的了。希望我的分享能够为你们的成功带来一些帮助和指导! 粥底火锅是生活中比较特别的一种火锅,它的吃法比较清淡,使用大米熬制的锅底,不添加辛辣的食材,可以煮各种配菜…

    2023年5月13日
  • 心理资格证报考条件2021年「新手必看:心理咨询师证怎么考需要什么条件2021」

    今天吴锦麟给大家带来了这篇心理资格证报考条件2021年,心理咨询师证怎么考需要什么条件2021干货,以及资格证书,考生,证书,单位,费用等等相关的各种干货,这篇文章对新手朋友来说是比较重要的,因为涉及到各个方面,阅读完你一定能有所收获! 心理咨询师资格证书通过上面的资格证书就能了解到它是非常权威的证书,用来找工作或者事业的发展都是非常不错的,毕竟心理学证书对…

    2023年2月18日
  • 劳荣枝执行死刑前向受害者家属道歉 – 视频

    亲爱的读者们,我是新闻分析师尤汉平,今天分析了最新的事件。近来,有关劳荣枝执行死刑前向受害者家属道歉的讨论日益增多,成为了网民们关注的热门话题。现在,让我们一同探寻这个事件的真相,看看到底发生了什么! 原标题:劳荣枝执行死刑前向受害者家属道歉 近日,最高人民法院对被告人劳荣枝故意杀人、抢劫、绑架死刑复核一案依法作出裁定,核准劳荣枝死刑。江西省南昌市中级人民法…

    自媒体 2023年12月18日
  • 甲流可以吃四季抗病毒合剂吗 秒懂:甲流吃四季抗病毒合剂有用吗

    大家好,今天承卓想和大家分享一下关于甲流可以吃四季抗病毒合剂吗,甲流吃四季抗病毒合剂有用吗的知识,还有关于抗病毒,合剂,病毒,胶囊,流感这些的实用干货和最新内容分享,如果你刚刚开始学习这个领域,那么这篇文章将会给你带来很大的帮助。 甲流是最近比较流行的一种病毒,它具有很好的传染性,短时间内就会感染很多人,尤其是免疫力比较弱的人群。甲流一般可以吃四季抗病毒合剂…

    2023年4月20日