过期域名批量查询工具(域名状态查询工具)

前言由于公司有大量域名信息需要定期查看是否需要续期,前期都是人工操作比较耗时、耗力。所以衍生了这个小工具。实现了查询域名到期时间、并且将近7天内到期的域名在Excel中标红,当然你也可以添加短信提醒和邮件提醒代码步骤1、将域名粘贴到指定txt文件中比

过期域名批量查询工具(域名状态查询工具)

前言

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

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

代码步骤

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

比如:domain.txt

过期域名批量查询工具(域名状态查询工具)

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)

运行结果:

过期域名批量查询工具(域名状态查询工具)

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)

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

(0)
nan
上一篇 2021-09-12
下一篇 2021-09-12

相关推荐

  • 「域名加什么数字」网络域名中间的数字是什么意思

    域名加什么数字,为什么域名最好不要带数字 内容导航: 域名注册——哪些字母和数字可以用于域名 网络域名中间的数字是什么意思 域名用字母加数字有利于优化吗 加一堆数字 可是我看别人有…

    2022-05-17
    0
  • 如何做好公司网站(公司想做一个网站怎么办)

    如何做好公司网站,公司想做一个网站怎么办内容导航:如何做好公司的网站怎么做好公司网站的SEO怎么做好一个企业网站公司网站如何做好推广和seo一、如何做好公司的网站俗话说,每件事都要从小事做起。你不能直接宣传,而要先申请一个空间,介绍你的产品,别人很可能有兴趣,然后你找人帮你做一个网站就OK了

    2022-04-19
    0
  • c语言数组赋值给变量的方法是什么

    在C语言中,数组无法直接赋值给变量,但可以通过以下方法将数组的元素赋值给变量:使用循环逐个将数组元素赋值给变量:int arr[5] = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < 5; i++) {sum += arr[i];}使用指针来访问数组元素赋值给变量:int arr[5] = {1, 2, 3, 4, 5};int sum =

    2024-02-26
    0
  • 「域名nz什么意思」xin域名是什么意思

    域名nz什么意思,xin域名是什么意思内容导航:新西兰的域名后缀是什么nz是哪儿的域名啊NZ购物券去哪里用新西兰域名知识什么是域名一、新西兰的域名后缀是什么新西兰的域名后缀是nz。域名可分为不同级别,包括顶级域名、二级域名等。顶级域名顶级域名又分为两类:一是国家顶级域名(nationaltop-

    2022-05-17
    0
  • 网站用的是什么字体(网站都用什么字体)

    网站用的是什么字体,网站都用什么字体内容导航:在网页上显示的是什么字体网站更新网站用什么字体好哪湖南高速公路网站的字体是什么网页上用的字体是什么字体比如说淘宝网百度等页面的字体我用一、在网页上显示的是什么字体谁知道,在网页上显示的字体是什么型号的,例如:黑体。它是

    2022-05-11
    0
  • C#中怎么用Winform实现进度条显示

    在C#中使用Winform实现进度条显示,可以通过以下步骤实现:在窗体中添加一个进度条控件,可以通过拖拽的方式直接在窗体中添加进度条控件。在代码中设置进度条的最小值和最大值,以及当前值。可以通过以下代码实现:progressBar1.Minimum = 0; // 进度条最小值progressBar1.Maximum = 100; // 进度条最大值progressBar1.Value = 0

    2024-03-19
    0

发表回复

登录后才能评论