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

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

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

相关推荐

  • 商场520鲜花遭大妈哄抢 场面一片狼藉网友吐槽:商场回应

    亲爱的观众朋友们,我是本站的主持人李芷涵,非常荣幸为大家呈现最新的资讯。最近,商场520鲜花遭大妈哄抢 场面一片狼藉网友吐槽:商场回应的热度不断攀升,成为了社交媒体上的热门话题之一。现在就让我们一起来探究这件事的具体情况吧! 马上就520了,你想好怎么过了吗? 5月19日,安徽滁州一商场门口摆的玫瑰花装饰,供游客打卡拍照纪念520,结果被一群大妈扎堆哄抢,还…

    2023年5月19日
  • 顺丰嘿客官网「最新顺丰嘿客店经营模式」

    美好的1天即将在这里开始,下面就由笔者卫枫旖来一起聊聊顺丰嘿客官网(顺丰嘿客店经营模式),以及关于驿站,社区,服务站这些的相关干货,认真阅读完,把我想表达的思路完全理解,相信你很快就可以掌握! 了解顺丰嘿客 顺丰嘿客是顺丰旗下的网购服务社区店,旨在整合渠道资源,为顾客提供更灵活、更便捷、更智能化的线下社区服务体验。14年O2O火爆时上线,运营一年后改名顺丰家…

    2022年9月21日
  • cydia无法加载及各种常见错误解决方法

    哈喽,小伙伴们大家好,今天蒋容光废话就不多说了,直接上干货,标题:cydia无法加载及各种常见错误解决方法,以及错误,工具,插件的一系列相关干货,思路很重要,希望我整理分享的这篇文章对你能有一定的帮助! [ 寂寞网导读 ] Cydia Eraser到目前依旧还是有不少旧版iOS越狱用户再使用,这款工具是由Cydia之父Saurik所推出,是一款能够删除越狱环…

    2022年10月11日
  • 定制衣服怎么量身体尺寸的「必看:量身定制衣服怎么量尺寸」

    Hi,大家好,美好的一天从这里开始,今天主要讲解定制衣服怎么量身体尺寸的,量身定制衣服怎么量尺寸,以及关于测量,尺寸,衣服,腰围,胸围这些的相关干货,希望你认真看完这篇文章后,能充分理解我想表达的意思。相信你很快就能掌握!你离大牛越来越近了! 定制衣服一般要测量身高,领围,肩宽,胸围,臂长,腰围,臀围,裤长,衣长,袖长等。 1,胸围:以胸部最丰满的胸凸点为测…

    2023年2月1日
  • 千岛湖有多少个岛屿可以上岛「推荐千岛湖有多少个岛」

    小伙伴们大家好,这次沈瀚轩早带大家来分析下关于千岛湖有多少个岛屿可以上岛,千岛湖有多少个岛,还有干货岛屿,水位,小岛,范畴,才能等等各种精品,其实这篇文章主要还是为新手朋友整理的,总的来说思路还是很重要! 杭州淳安千岛湖1078岛并被命名为“千岛湖”。那么,多大的岛才能进入统计范畴?即在千岛湖最高水位时,大于0.25平方公里的岛屿可以纳入统计。但是,在千岛湖…

    2023年2月14日
  • 印度耗资百亿卢比的大桥又塌了,去年4月底该桥也曾发生过坍塌

    大家好,我是本站的新闻分析员佑骞,用专业的眼光为您分析最新的事件,印度耗资百亿卢比的大桥又塌了,去年4月底该桥也曾发生过坍塌最近备受关注,成为了网络上热议的话题之一。下面,就让我为大家介绍一下这个事件的来龙去脉吧! 据印度媒体报道,当地时间6月4日报道,印度比哈尔邦在建的横跨恒河的阿格瓦尼-苏丹甘吉大桥再次发生部分坍塌。目前还未收到人员伤亡报告。 坍塌的瞬间…

    2023年6月5日