Я работал над этим кодом некоторое время и у меня все работает, но я просто хотел бы, чтобы он обновлялся быстрее при нажатии кнопки. Я изучал многопроцессорность, но я новичок в python, поэтому я немного запутался, как превратить это для l oop в def click () в многопроцессорную версию, чтобы они могли работать одновременно. Я вырезал часть кода и настройки GUI, чтобы сделать код более терпимым, но поэтому некоторые переменные могут показаться ненужными. Будем признательны любому совету. Спасибо.
import tkinter as tk
import time
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--mute-audio")
options.headless = True
browser = webdriver.Chrome('/Users/Matt/Downloads/chromedriver', options=options)
app = tk.Tk()
app.title("Over / Under")
#Entries for user to insert player name that will be searched
p1 = tk.StringVar()
p2 = tk.StringVar()
p3 = tk.StringVar()
Player1Name = tk.Entry(app, textvariable = p1, width=20)
Player1Name.grid(column=1, row=0, padx=10, pady=5, sticky=tk.N)
Player2Name = tk.Entry(app, textvariable = p2, width=20)
Player2Name.grid(column=1, row=1, padx=10, pady=5, sticky=tk.S)
Player3Name = tk.Entry(app, textvariable = p3, width=20)
Player3Name.grid(column=1, row=2, padx=10, pady=5, sticky=tk.S)
#Empty label that will be filled with current stats
P1CurrentStatText = tk.StringVar()
P2CurrentStatText = tk.StringVar()
P3CurrentStatText = tk.StringVar()
P1CurrentStatLabel = tk.Entry(app, width=5, textvariable = P1CurrentStatText)
P1CurrentStatLabel.grid(column=5, row=0, padx=10, pady=5)
P2CurrentStatLabel = tk.Entry(app, width=5, textvariable = P2CurrentStatText)
P2CurrentStatLabel.grid(column=5, row=1, padx=10, pady=5)
P3CurrentStatLabel = tk.Entry(app, width=5, textvariable = P3CurrentStatText)
P3CurrentStatLabel.grid(column=5, row=2, padx=10, pady=5)
def click():
for i in range(1, 6):
pID = eval(("p" + str(i) + ".get()"))
pcID = eval(("P" + str(i) + "CurrentStatText"))
PRAID = eval(("PRA" + str(i) + "opt.get()"))
OUID = eval(("OU" + str(i) + "opt.get"))
if pID == "":
continue
browser.get("https://www.espn.com/")
time.sleep(1)
srch_btn = browser.find_element_by_xpath('//*[@id="global-search-trigger"]')
srch_btn.click()
srch_bar = browser.find_element_by_xpath('//*[@id="global-search"]/input[1]')
srch_bar.send_keys(pID)
time.sleep(1)
player_page = browser.find_element_by_xpath('//*[@id="global-search"]/div/div/div[1]/ul/li/a')
player_page.click()
time.sleep(1)
points = browser.find_element_by_xpath(
'//*[@id="fittPageContainer"]/div[2]/div[5]/div/div/div[1]/section/div/div[2]/article[1]/ul/li/div/div')
rebounds = browser.find_element_by_xpath(
'//*[@id="fittPageContainer"]/div[2]/div[5]/div/div/div[1]/section/div/div[2]/article[2]/ul/li/div/div')
assists = browser.find_element_by_xpath(
'//*[@id="fittPageContainer"]/div[2]/div[5]/div/div/div[1]/section/div/div[2]/article[3]/ul/li/div/div')
pointstxt = points.get_property('textContent')
reboundstxt = rebounds.get_property('textContent')
assiststxt = assists.get_property('textContent')
if PRAID == "Rebounds":
pcID.set(reboundstxt)
elif PRAID == "Points":
pcID.set(pointstxt)
else:
pcID.set(assiststxt)
def quit():
app.destroy()
browser.close()
UpdateButton = tk.Button(app, text = 'Update', command = click)
UpdateButton.grid(column=2, row=5, pady=10, padx = 10)
ExitButton = tk.Button(app, text = 'Exit', command = quit)
ExitButton.grid(column=4, row=5, pady=10, padx = 10)
app.mainloop()