【Python】不完善的批量网站运行检测小工具

使用tkinter制作了图形界面的小工具,主要是通过requests获取网站的状态码200,获取到其他的状态码则判定为运行异常。
1、可自行输入检测文件位置,.txt(文本格式,一行一个网址)
2、可自行输入谷歌驱动程序位置,(驱动下载安装教程)
3、检测网站是否正常运行

# %%
#coding=utf-8

from selenium import webdriver
import tkinter as ck
from tkinter import ttk
import requests
import threading


#创建窗口
gjcss = ck.Tk()
gjcss.title("网站运行检测")
gjcss.geometry('600x350')

options = webdriver.ChromeOptions() # 设置中文
options.add_argument('lang=zh_CN.UTF-8') # 更换头部
options.add_argument('User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"')# 请求响应标头


#URL文本
li1 = ck.Label(text="请输入文件名:", font=('Arial', 12)) 
li1.place(x=0, y=10)

#输入框
srk = ck.Entry(bd=2,width=30)
srk.insert(0,'wyurl.txt') 
srk.place(x=110, y=10)


#浏览器驱动
li2 = ck.Label(text="浏览器驱动:", font=('Arial', 12)) 
li2.place(x=0, y=40)

#输入框
srk2 = ck.Entry(bd=2,width=30)
srk2.place(x=110, y=40)


#创建表格
columns = ['序号', '网站名称', '网址','运行情况']
liebiao = ttk.Treeview(gjcss,columns=columns,show='headings')
liebiao.heading('序号', text='序号')
liebiao.heading('网站名称', text='网站名称')
liebiao.heading('网址', text='网址')
liebiao.heading('运行情况', text='运行情况')

liebiao.column('序号',width=50,anchor='s')
liebiao.column('网站名称',width=200,anchor='s')
liebiao.column('网址',width=200,anchor='s')
liebiao.column('运行情况',width=100,anchor='s')

# global i
# i = 0

def lqcz():
    global i
    i = 0
    
    getssc = srk.get()
    browsedriver = srk2.get()

    #打开谷歌浏览器
    #谷歌浏览器:C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe
    # browser = webdriver.Chrome(r'%s' % (browsedriver),chrome_options=options)
    browser = webdriver.Chrome(r"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe",chrome_options=options)
    with open(getssc,"r",encoding='utf8') as f:#打开记事本
        for line in f.readlines():
            data = line.strip('\n') #去掉换行符
            try:
                browser.get(data)   #打开网址
                titlbt = browser.title  #获取网站标题
                weburl = requests.get(data)
                yxcode = weburl.status_code #获取状态码
                if  yxcode==200:
                    condition = '运行正常'
                else:
                    condition = '运行异常'  
                
            except:
                print ("Error:此无法网站打开",data)
                titlbt = '网站异常'
                condition = '运行异常'
            i += 1

            liebiao.insert('',0,text='date0',values=(i,titlbt,data,condition)) #向表格插入数据
#线程
def xc():            
    t = threading.Thread(target=lqcz)
    t.start()              
    # time1.sleep(10)

#wyurl.txt
antj = ck.Button(text="提交",width=10,command=xc)
antj.place(x=330, y=5)


# liebiao.insert('',0,text='date0',values=('1','网站名称','http://www.en.jixingchem.com','正常'))

liebiao.place(x=10, y=80)   #表格插入

vsb = ttk.Scrollbar(gjcss, orient="vertical", command=liebiao.yview)#Y轴滚动条
vsb.place(x=545, y=81, height=225)
liebiao.configure(yscrollcommand=vsb.set)



gjcss.mainloop()

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 你可以使用 Python 中的循环语句和字符串操作来批量生成大量函数。以下是一个示例代码,可以生成多个名字类似的函数: ``` def generate_functions(): for i in range(10): def func(): print(f"This is function {i}") globals()[f"function_{i}"] = func generate_functions() ``` 这个代码会生成 10 个类似的函数,它们的函数名分别为 `function_0` 到 `function_9`。你可以调用这些函数来检查它们是否正常工作,例如: ``` function_0() # 输出 This is function 0 function_1() # 输出 This is function 1 ... function_9() # 输出 This is function 9 ``` 你也可以根据需要修改循环范围和函数名的前缀和后缀。 ### 回答2: 要批量生成大量函数,可以借助 Python 的元编程技术来实现。元编程是指在程序运行时创建、修改或操作程序的一种方式。 首先,我们可以使用装饰器来生成函数。装饰器是一种特殊的函数,可以用来修饰其他函数。我们可以定义一个生成函数的装饰器,在装饰器中使用循环生成多个函数。例如: ```python def generate_functions(num): def decorator(func): for i in range(num): name = f'function_{i}' # 生成函数名 def wrapper(): print(f'This is {name} function') globals()[name] = wrapper # 将函数添加到全局命名空间 return func return decorator @generate_functions(10) # 生成10个函数 def main(): pass main() # 调用生成的函数 ``` 上述代码中,`generate_functions` 函数是用来生成函数的装饰器,它通过接收一个参数来确定需要生成的函数数量。在装饰器中,使用循环遍历生成多个函数,并将函数添加到全局命名空间中。最后,我们将装饰器应用到 `main` 函数上,即可生成指定数量的函数。 除了装饰器,还可以使用 `exec` 或 `eval` 函数来动态生成函数。这两个函数可以执行字符串形式的 Python 代码。 例如,我们可以使用循环拼接字符串的方式生成函数定义,并使用 `exec` 函数执行生成的代码: ```python for i in range(10): func_name = f'function_{i}' code = f"def {func_name}():\n print('This is {func_name} function')" exec(code) # 调用生成的函数 for i in range(10): func_name = f'function_{i}' exec(f'{func_name}()') ``` 上述代码中,使用循环拼接字符串生成了多个函数的定义,并通过 `exec` 函数执行。然后,我们可以通过拼接字符串的方式调用生成的函数。 无论是使用装饰器还是使用 `exec` 函数,都能实现批量生成大量函数的功能。根据需要,可以选择合适的方法来生成函数。 ### 回答3: Python是一种功能强大而灵活的编程语言,可以使用它来快速批量生成大量函数。下面是一种实现方法: 首先,我们可以使用一个for循环来迭代生成函数的名称和参数: ```python def generate_functions(num_functions): for i in range(num_functions): def func(): print(f'This is function {i}.') globals()[f'function_{i}'] = func ``` 上述代码中,我们定义了一个名为`generate_functions`的函数,它接受一个参数`num_functions`表示要生成的函数数量。然后,在for循环中,我们定义了一个名为`func`的函数,其中打印了相应的函数编号。接下来,我们使用`globals()`函数将这个函数添加到全局命名空间中,并使用`f'function_{i}'`作为函数名。 现在,我们可以调用`generate_functions`函数来生成所需数量的函数。例如,调用`generate_functions(5)`将生成5个带有不同编号的函数`function_0`到`function_4`: ```python generate_functions(5) function_0() # 输出:This is function 0. function_1() # 输出:This is function 1. function_2() # 输出:This is function 2. function_3() # 输出:This is function 3. function_4() # 输出:This is function 4. ``` 通过这种方式,我们可以使用Python批量生成大量函数。这种方法非常灵活,可以根据实际需要进行调整和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值