如何解决无法将 Tkinter 连接到 Sql 数据库 (Pyrhon)
我正在一个项目中使用 Selenium(Python) 抓取亚马逊产品详细信息。我尝试使用 Tkinter for Gui 和 sqlite3 来存储数据。但是我在插入函数中遇到错误。而且我无法将 Tkinter 输出连接到数据库。如果我将 'prod_name1.get()' 和 'priceis1.get()' 分别更改为 'url_txt.get()' 和 'priceis_txt.get()',我不再收到错误,但数据库为空只有当我使用输入框并使用“添加产品”按钮添加值时,它才会被填充。 代码如下:
amaz=Tk()
amaz.title("Amazon Sel")
con=sqlite3.connect('products.db')
curr=con.cursor()
curr.execute("CREATE TABLE IF NOT EXISTS Amaz(Id INTEGER PRIMARY KEY,Product TEXT,PriceFrom REAL,PriceIs REAL)")
con.commit()
def amazon():
options=Options()
path="C:/Users/xyz/PycharmProjects/pythonProject/Amaz/amaz.xlsx"
workbk=openpyxl.load_workbook(path)
sheet=workbk.active
sheet.cell(row=1,column=1).value = "Product"
sheet.cell(row=1,column=2).value = "Price"
curr.execute("SELECT * FROM Amaz")
all=curr.fetchall()
urls=["https://www.amazon.in/boAt-BassHeads-100-Headphones-Black/dp/B071Z8M4KX/ref=psdc_1388921031_t1_B01DEWVZ2C","https://www.amazon.in/ZAPATOZ-Women-Black-Medium-Top-Sports/dp/B08KS5X6YP/ref=sr_1_13?dchild=1&keywords=shoes+women+black+sneakers&qid=1615877072&sr=8-13#customerReviews","https://www.amazon.in/Blinder-Lightweight-Comfortable-Lace-Up-sneakers/dp/B08TTTPdpl/ref=sr_1_18?dchild=1&keywords=shoes%2Bwomen&qid=1615880238&sr=8-18&th=1&psc=1"]
driver = webdriver.Chrome(executable_path=r"C:\Users\xyz\PycharmProjects\pythonProject\chromedriver.exe",options=options)
prow=1
r=2
i=1
def insert_prod():
curr.execute("INSERT INTO Amaz(product,pricefrom,priceis) VALUES(?,?,?)",(prod_name1.get(),pricefrom_txt.get(),priceis1.get()))
con.commit()
messageBox.showinfo("Notification","Product added to the cart successfully")
reset()
for url in urls:
driver.get(url)
try:
ele = driver.find_element_by_id("native_dropdown_selected_size_name")
drp = Select(ele)
drp.select_by_index(1)
time.sleep(1)
except:
pass
time.sleep(1)
try:
prod_name = driver.find_element_by_id("productTitle").text
priceis = (driver.find_element_by_id("priceblock_ourprice").text)[1:]
time.sleep(1)
except:
try:
prod_name = driver.find_element_by_id("productTitle").text
priceis = (driver.find_element_by_id("priceblock_dealprice").text)[1:]
except:
prod_name = driver.find_element_by_id("productTitle").text
priceis = (driver.find_element_by_id("priceblock_saleprice").text)[1:]
print(prod_name)
print(priceis)
print("-----------------------------------")
sheet.cell(row=r,column=1).value = prod_name
sheet.cell(row=r,column=2).value = priceis
r += 1
id = Label(amaz,text=i,bg="#F0ECFF",fg="#0D1036",font="Airel 10",borderwidth=2,relief="groove",padx="2",pady="2")
id.grid(row=prow,column=0,sticky=N + S + E + W)
prod_name1 = Label(amaz,text=prod_name,pady="2")
prod_name1.grid(row=prow,column=1,sticky=N + S + E + W)
priceis1 = Label(amaz,text=priceis,pady="2")
priceis1.grid(row=prow,column=2,sticky=N + S + E + W)
prow += 1
i+=1
workbk.save(path)
# INSERT
url_txt = Entry(amaz,relief="groove")
url_txt.grid(row=prow + 1,column=1)
pricefrom_txt = Entry(amaz,relief="groove")
pricefrom_txt.grid(row=prow + 1,column=2)
priceis_txt = Entry(amaz,relief="groove")
priceis_txt.grid(row=prow + 1,column=3)
add_prod = Button(amaz,text="Add Product",bg="#1D2F39",fg="white",command=insert_prod,pady="2")
add_prod.grid(row=prow + 1,column=4,sticky=N + S + E + W)
amazon()
amaz.mainloop()
curr.close()
con.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。