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

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

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

相关推荐

  • 县城送外卖一个月能赚多少「揭秘外卖员一个月的真实收入」

    大家好,今天许子彧给大家讲解下关于县城送外卖一个月能赚多少,揭秘外卖员一个月的真实收入的事情,以及关于外卖,员工,店家这些一系列的精品相关干货,其他的废话在这里我也不说了,我们直接来进入正题吧! 12月25日,在山东烟台,外卖送餐小哥张磊接到一个特别的订单。这是一位热心市民在外卖平台点了25杯热饮,备注写着:“麻烦送给环卫工人,谢谢。手机关机,不要联系我!”…

    2023年1月3日 自媒体
  • 2023年幼升小年龄最新规定 必备:2023年幼升小需要准备什么材料

    各位小伙伴好,今天冯炯为大家带来了一篇关于2023年幼升小年龄最新规定,2023年幼升小需要准备什么材料的分享,还有关于年龄,规定,材料,身份证,学籍这些的实用干货和最新内容,在整理自己的思路之后,我写下了这篇文章,希望能够为大家提供一些有用的建议和指导,让你们更好地把握思路。 对于幼升小的年龄规定,老百姓经常讨论,很多人都因为自己的孩子在下半年出生而苦恼,…

    2023年4月2日
  • 珠江118sc钢琴价格 「珠江钢琴eu118价格」

    HI,大家好,废话不多说,直接上干货:珠江118sc钢琴价格 「珠江钢琴eu118价格」,还有关于钢琴,价格,型号等一系列的内容,成功的路上不会一帆风顺,每一个成功的背后都有一个惊人的故事。 欧美价格在5万以上,最便宜的118m,预算在一万五以上,珠江118很多型号最便宜。只有这个。这钢琴二个的配置都要比118M+好太多了,但不便宜。珠江采用的是真空钢板。1…

    自媒体 2022年11月10日
  • 香格里拉哪个省份「必看:香格里拉在哪个省」

    美好的1天将要从这里开始啦!今天笔者许旭生来说说香格里拉哪个省份,香格里拉在哪个省,以及省份,自治州,美景,自然保护区,风光这些一系列的相关干货内容,想要做好首先一定要把基本功练好了,否者是很难持续提升的。 这是香格里拉市纳帕海自然保护区的风光(3月14日摄)。 香格里拉市位于云南省迪庆藏族自治州。春日的香格里拉,美景如画。 新华社记者 胡超 摄 这是香格里…

    2023年2月13日 自媒体
  • 工商银行提前还房贷的流程「详细讲解:违约金多少」

    各位朋友们大家好,这次王玙想和大家聊聊关于工商银行提前还房贷的流程,违约金多少,以及关于银行,工商,利率,利息,流程等等各种相关干货,成功的路上不会一帆风顺,每一个成功的背后都有一个惊人的故事。 现在不少的人都是通过申请贷款的方式来购买房子的。不过,贷款买房的还款期限是比较久的,因此需要支付的利息也比较多。因此,有的人就想要提取还款来减少利息支出。下面看下工…

    自媒体 2023年2月24日
  • 网易邮箱登陆不上怎么办:最新教你一招轻松解决

    大家好,今天李清芸给大家准备的干货是网易邮箱登陆不上怎么办,教你一招轻松解决,以及关于邮箱,手机,问题的一系列相关内容,认认真真阅读完,若能把我想表达的全部理解,相信你已经离大牛不远了哈! 最近遇到一起很诡异的事情,本菜鸟的手机(华为的)自带的邮箱客户端老是提醒邮箱无法登录(如下图)。 起初,以为是改了密码的原因,于是重新输入了最新密码,但还是无法登录。之所…

    2022年10月26日 自媒体