之前因为看见有人需要域名检测腾讯那边是否报毒,然后自己随时练习一下,因为去买一些二手域名可能被腾讯拉入黑名单了,买多的话有个一键检测当然省不少时间,不过这个东西网上倒是有很多检测,但是!有收费的,限制检测数量的,总之完全免费并且随便用的没看见,不知道腾讯那里有多少个检测网站,有一个网站我一直抓不到包,后来在网上查到了另一个地址,简单就拿到api了。
tkinter的主要代码:
导入模块我尽量用了from,是为了打包exe文件后尽量减小软件大小
1 from tkinter import W,E,N,S,Button,Label,Text,Tk 2 from tkinter import END 3 import tkinter.messagebox 4 from threading import Thread 5 from mains import txymjc 6 from requests import get 7 8 9 10 def th(): 11 t1 = Thread(target=ym_jc) 12 t1.start() 13 14 def ym_jc(): 15 # 读输入的域名 16 text_content = (text1.get("0.0", "end").replace(" ", "")).split("\n") 17 text_content.pop() # 列表最后一个元素是空删除它 18 19 if text_content[0] == ‘‘: 20 tkinter.messagebox.showinfo(title=‘提示‘, message=‘麻烦把域名填一下再提交!‘) 21 else: 22 x=0 23 for url in text_content: # 这里对输入的域名循环检测 24 data = txymjc(url) # 这个调用检测核心函数 25 for r in data: 26 text2.insert(END, data[r] + ‘\n‘) 27 x = x + 1 28 if x == 10: 29 break 30 31 32 def qk(): # 清空按钮 33 text1.delete(1.0, END) 34 text2.delete(1.0, END) 35 36 37 root=Tk() #生成root主窗口 38 root.title(‘域名检测‘) 39 root.resizable(0,0) 40 root.geometry(‘750x560‘) 41 42 # 两个布局控件 43 frm1 = tkinter.Frame(root,height=100,width=400,).grid(row=0,column=0,columnspan=2,sticky=N+W) 44 frm2 = tkinter.Frame(root,height=380,width=400,).grid(row=2,column=0,padx=15,sticky=N+W) 45 frm3 = tkinter.Frame(root,height=380,width=260,).grid(row=2,column=1,padx=15,sticky=N+W) # background=‘#FFFFFF‘ 46 47 # 按钮控件 48 Button(frm1,text=‘开始检测‘,height=2,width=20,fg=‘red‘,font=10,command=th).grid(row=0,columnspan=2,pady=0,padx=15,) 49 Button(frm1,text=‘清空‘,height=0,width=8,fg=‘red‘,font=10,command=qk).grid(row=0,column=1,columnspan=2,pady=0,padx=15,sticky=E) 50 51 # 文本标签 52 Label(frm1, text="域名输入区、一行一个域名,一次最多检测10个", height=0,).grid(row=1, column=0,columnspan=1,sticky=W+E+N+S, padx=5,) 53 Label(frm1, text="域名检测结果输出区", height=0,).grid(row=1, column=1,columnspan=1,sticky=W+E+N+S, pady=5,) 54 55 # 多行输入框 56 text1 = Text(frm1,width=40,height=20,font=10) 57 text2 = Text(frm2,width=30,height=20,font=10) 58 59 # 布局输入框,这里单独拿出来放,不然出问题 60 text2.grid(row=2,column=1) 61 text1.grid(row=2,column=0) 62 63 root.mainloop() #进入消息循环(必需组件)
域名检测的核心函数代码:
其他功能可以自己拓展。
import requests import json from time import localtime from time import strftime def txymjc(url): api_url = "https://cgi.urlsec.qq.com/index.php?m=check&a=check&url=%s" % url headers = {"Host": "cgi.urlsec.qq.com", "Referer": "https://urlsec.qq.com", "Sec-Fetch-Mode": "no-cors", "Sec-Fetch-Site": "same-site", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"} try: text = requests.get(api_url, headers=headers).text zidian = json.loads((text[1:-1])) data = (zidian[‘data‘]) data_xx = {} if data != "查询url格式不正确": data_xx[‘urls‘] = ("检测URL:" + data[‘results‘][‘url‘]) if data[‘results‘][‘whitetype‘] == 2: # 域名不正常 data_xx[‘whitetype‘] = ("域名不正常") data_xx[‘WordingTitle‘] = ("报毒标题:" + data[‘results‘][‘WordingTitle‘]) data_xx[‘Wording‘] = ("报毒原因:" + data[‘results‘][‘Wording‘]) else: # 域名正常 data_xx[‘whitetype‘] = ("域名正常") if data[‘results‘][‘isDomainICPOk‘] == 0: # 域名没有备案 data_xx[‘isDomainICPOk‘] = ("域名未备案") if data[‘results‘][‘isDomainICPOk‘] == 1: # 域名已经备案 data_xx[‘isDomainICPOk‘] = ("域名已备案") data_xx[‘Orgnization‘] = ("备案负责人:" + data[‘results‘][‘Orgnization‘]) data_xx[‘ICPSerial‘] = ("备案号:" + data[‘results‘][‘ICPSerial‘]) timeArray = localtime(int(data[‘results‘][‘detect_time‘])) otherStyleTime = strftime("%Y-%m-%d %H:%M:%S", timeArray) data_xx[‘detect_time‘] = "最后检出的时间:" + otherStyleTime else: data_xx[‘0‘] = ("查询url格式不正确") return data_xx except: data_xx[‘0‘] = ("查询url格式不正确") return data_xx
原文:https://www.cnblogs.com/hongming/p/12381316.html