from
bs4
import
BeautifulSoup
import
requests
from
tkinter
import
*
from
datetime
import
date
from
tkinter
import
ttk
def
get_number_from_string(string):
return
float
('
'.join([x for x in string if x.isdigit() or x == '
.']))
today
=
date.today()
def
silver_price():
data
=
requests.get(
soup
=
BeautifulSoup(data.text,
'html.parser'
)
price
=
soup.find(
"div"
,
class_
=
"gold_silver_table right-align-content"
).find(
"tr"
,
class_
=
"odd_row"
).findAll(
"td"
)
return
price[
1
].text
def
gold_price():
data
=
requests.get(
soup
=
BeautifulSoup(data.text,
'html.parser'
)
price
=
soup.find(
"div"
,
class_
=
"gold_silver_table right-align-content"
).find(
"tr"
,
class_
=
"odd_row"
).findAll(
"td"
)
return
price[
1
].text
def
change_price(weight_value):
g_price
=
float
(weight_value)
*
get_number_from_string(gold_price())
s_price
=
float
(weight_value)
*
get_number_from_string(silver_price())
silver_price_label.config(text
=
f
"{s_price} Rs"
)
gold_price_label.config(text
=
f
"{g_price} Rs"
)
root
=
Tk()
root.geometry(
"400x400"
)
Label(root, text
=
"SILVER AND GOLD PRICE"
, font
=
(
"Helvetica 15 bold"
), fg
=
"blue"
).pack()
frame1
=
Frame(root)
frame1.pack(pady
=
20
)
Label(frame1, text
=
"Today Date:- "
, font
=
(
"Helvetica 15 bold"
)).pack(side
=
LEFT)
Label(frame1, text
=
today, font
=
(
"Helvetica 15"
)).pack()
frame2
=
Frame(root)
frame2.pack(pady
=
20
)
variable
=
StringVar(root)
variable.
set
(
"1"
)
Label(frame2, text
=
"Select Weight:- "
,
font
=
(
"Helvetica 15 bold"
)).pack(side
=
LEFT)
w
=
OptionMenu(frame2, variable,
"1"
,
"8"
,
"100"
,
"500"
,
"1000"
, command
=
change_price)
w.pack(side
=
LEFT)
Label(frame2, text
=
"gm"
, font
=
(
"Helvetica 15"
)).pack(side
=
LEFT)
frame3
=
Frame(root)
frame3.pack()
Label(frame3, text
=
"Silver Price:- "
, font
=
(
"Helvetica 15 bold"
)).pack(side
=
LEFT)
silver_price_label
=
Label(frame3, text
=
"
", font=("
Helvetica
15
"))
silver_price_label.pack(pady
=
20
)
frame4
=
Frame(root)
frame4.pack()
Label(frame4, text
=
"Gold Price:- "
, font
=
(
"Helvetica 15 bold"
)).pack(side
=
LEFT)
gold_price_label
=
Label(frame4, text
=
"
", font=("
Helvetica
15
"))
gold_price_label.pack(pady
=
20
)
root.mainloop()