Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter即使穿线也会冻僵_Python_Multithreading_Python 2.7_Tkinter - Fatal编程技术网

Python tkinter即使穿线也会冻僵

Python tkinter即使穿线也会冻僵,python,multithreading,python-2.7,tkinter,Python,Multithreading,Python 2.7,Tkinter,我目前正在开发一个web扫描仪,可以连续扫描易受攻击的URL。 我希望我的程序有一个GUI,因此选择使用tkinter 目前我面临一个问题,当我通过按下按钮从主程序(GUI)调用其他脚本时,GUI将冻结,并且只有在程序扫描完整个单词列表后才会加载 我知道线程,并尝试将其应用到我的程序中。但它似乎不起作用,我不确定为什么 我花了几个小时浏览了许多stackoverflow页面并实现了它们,但似乎仍然没有成功。我试过的一个例子是 我的代码如下: 主图形用户界面 from Tkinter import

我目前正在开发一个web扫描仪,可以连续扫描易受攻击的URL。 我希望我的程序有一个GUI,因此选择使用tkinter

目前我面临一个问题,当我通过按下按钮从主程序(GUI)调用其他脚本时,GUI将冻结,并且只有在程序扫描完整个单词列表后才会加载

我知道线程,并尝试将其应用到我的程序中。但它似乎不起作用,我不确定为什么

我花了几个小时浏览了许多stackoverflow页面并实现了它们,但似乎仍然没有成功。我试过的一个例子是

我的代码如下:

主图形用户界面

from Tkinter import *
from URLFuzzerNonRecursive import nonrecursiveURL
import threading

def thread(value):
   t = threading.Thread(target=nonrecursiveURL(value))
   t.start()
   #t.join()

def main():
   master = Tk()
   master.title("Web Fuzzer")

   master.geometry("700x400")
   urllabel = Label(master, text="Input URL to Fuzz")
   urllabel.place(relx=0.35, rely=0.05)
   urlinput = Entry(master, bd =5)
   urlinput.place(relx=0.35, rely=0.10)
   urlinput.insert(END,"http://")

   nonrecursionURL = Button(master, text="Non-Recursive URL Fuzzer", command=lambda: thread(urlinput.get()),width=20, height=2)
   nonrecursionURL.place(relx=0.35, rely=0.30)

   master.mainloop()

if __name__ == '__main__':
   main()
主GUI调用的Python脚本:

import requests
import tkinter.messagebox as tkmb
import tkinter as tk
import threading

def nonrecursiveURL(URLtoTake):
   root = tk.Tk()

   ybar = tk.Scrollbar(root)
   T = tk.Text(root)
   ybar.config(command=T.yview)
   T.config(yscrollcommand=ybar.set)
   T.grid(row=0, column=0, columnspan=5)
   ybar.grid(row=0, column=5, sticky="ns")
   try:
    with open('wordlist.txt') as f:
        for line in f:
            website = URLtoTake.strip('\n')+"/" + line
            URL = requests.get(website)
            if URL.status_code == 200:
                foundsites.append(website)
                info_message = "Status code: "+ str(URL.status_code) + " Found :" + website
                T.insert(tk.END,info_message)

            else:
                info_message = "Status code: "+ str(URL.status_code) +" Not Found :" + website
                T.insert(tk.END,info_message)

        for i in foundsites:
            T.insert(tk.END,"\n")
            T.insert(tk.END,"Found : ")
            T.insert(tk.END, i)
   except requests.exceptions.RequestException:
       info_message = "Please enter a valid URL ( inclusive of http:// )"
       tkmb.showinfo("Output", info_message)

问题中发布的
线程
函数是直接调用
非递归URL
函数,然后将其作为线程目标传递


def螺纹(值):
线程(目标=非递归URL(值))