我想制作一个程序,从批发网站获取表格的表格数据单元格元素(表格显示一次性VAPE的库存),然后在Tkinter GUI上显示哪些项目库存不足。到目前为止,我正在使用selenium访问各种VAPE的不同URL,并根据它们是否低于某个数字打印出这些VAPE的某些口味的库存。我添加了一个Tkinter GUI,它询问您想要检查哪些股票,并在按下“Vapes”按钮时启动selenium。是否可以在Tkinter GUI上显示HTML数据,而不只是将其打印到终端?这是我到目前为止的代码,我计划添加更多的VAPE和其他项目,但这里只添加了两个,这样看起来就不会那么混乱了:
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()
对不起,如果这个问题让人困惑的话,我对编程相当陌生。谢谢各位
我找到了一些与您的问题相匹配的答案/文章:
第一个链接建议您使用^{} :
第二个建议您使用^{} :
我在这两篇文章中都没有找到确切的
table
代码。在进一步的研究之后,我发现了第三篇文章,它为您提供了table
,但我认为,它不能解决您在您的环境中的问题所以,这里是我的建议您已经从那里刮取了页面并获得了所需的数据,现在您想在表中显示这一点。您可以这样做:
首先尝试创建表并手动在表中插入数据,您已经手动完成并得到了某种类型的表,对吗?现在尝试更改代码,通过循环数据将数据插入表中,就像手动操作一样
以下是上述想法的示例代码
有关上述脚本的更多信息,请访问Create table using tkinter
如果你想要任何其他想法或不理解任何东西,那么试着通过评论联系我
您可以尝试使用Treeview
我在下面的代码中添加了一个,但有点粗糙。:)
相关问题 更多 >
编程相关推荐