【发布时间】:2021-07-14 13:50:11
【问题描述】:
我想制作一个程序,从批发网站获取表格的表格数据单元格元素(表格显示一次性电子烟的库存),然后在 Tkinter GUI 上显示哪些商品库存不足。到目前为止,我正在使用 selenium 访问各种 vape 的不同 URL,并根据它们是否低于特定数量打印出这些 vape 某些口味的库存。我添加了一个 Tkinter GUI,当您按下“Vapes”按钮时,它会询问您要检查的股票并启动 selenium。是否可以在 Tkinter GUI 本身上显示 HTML 数据,而不仅仅是将其打印到终端?到目前为止,这是我的代码,我计划添加更多的电子烟和其他物品,但这里只做了两个,所以看起来不那么凌乱:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from tkinter import *
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
def search_result():
# fume infinity
driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/fume-infinity-disposable-device")
wait = WebDriverWait(driver, 15)
table = wait.until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".table.table-bordered tr[style='background: #eeeeee;']")))
data = []
rows = driver.find_elements_by_css_selector(".table.table-bordered tr[style='background: #eeeeee;']")
for row in rows:
qty = row.find_element_by_xpath("./td[1]").text
stock = row.find_element_by_xpath("./td[2]").text
name = row.find_element_by_xpath("./td[3]").text
if int(stock) <= 50:
data.append([stock, name])
print("Number left/Flavor/Fume Infinity Disposables 5PC")
print(*data, sep='\n')
# Fume Extra
driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/fume-extra-10pc")
wait = WebDriverWait(driver, 15)
table = wait.until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".table.table-bordered tr[style='background: #eeeeee;']")))
data = []
rows = driver.find_elements_by_css_selector(".table.table-bordered tr[style='background: #eeeeee;']")
for row in rows:
qty = row.find_element_by_xpath("./td[1]").text
stock = row.find_element_by_xpath("./td[2]").text
name = row.find_element_by_xpath("./td[3]").text
if int(stock) <= 50:
data.append([stock, name])
print("Number left/Flavor/Fume Extra Disposables 10PC")
print(*data, sep='\n')
driver.close()
#tkinter gui window and displayed options
window = Tk()
window.geometry("450x200")
search = Label(window,text= "Which stock would you like to check?",font='times 15')
search.place(x=20,y=20)
#buttons
b1 = Button(window,text="vapes",command=search_result,width = 12, bg= 'gray')
b1.place(x=150,y=50)
#b2 = Button(window,text="vape juices",command=search_result,width = 12, bg= 'gray')
#b2.place(x=150,y=90)
#b2 = Button(window,text="Juices",command=vape_juices,width = 12, bg= 'gray')
#b2.place(x=300,y=50)
window.mainloop()
对不起,如果这个问题令人困惑,我对编程还很陌生。谢谢大家。
【问题讨论】: