Anwendung, um Live-USD / INR-Kurs mit Python zu erhalten
In diesem Artikel werden wir Python-Skripte schreiben, um Live-Informationen über die USD / INR-Rate zu erhalten und diese an die GUI-Anwendung zu binden.
Erforderliche Module:
- bs4: Beautiful Soup ist eine Python-Bibliothek zum Abrufen von Daten aus HTML- und XML- Dateien.
Installation:
pip install bs4
- Anfragen: Mit diesem Modul können Sie sehr einfach HTTP / 1.1- Anfragen senden .
Installation:
Pip Installationsanforderungen
Schritt-für-Schritt-Ansatz:
- Daten aus der angegebenen URL extrahieren. Kopieren Sie die URL, nachdem Sie den gewünschten Speicherort ausgewählt haben.
- Kratzen Sie die Daten mit Hilfe von Anfragen und Beautiful Soup-Modul.
- Konvertieren Sie diese Daten in HTML-Code.
- Finden Sie die erforderlichen Details und filtern Sie sie.
Implementierung:
Schritt 1: Importieren Sie alle erforderlichen Module.
import
requests
from
bs4
import
BeautifulSoup
Schritt 2: Erstellen Sie eine URL-Get-Funktion
def
getdata(url):
r
=
requests.get(url)
return
r.text
Schritt 3: Übergeben Sie nun die URL an die Funktion getdata() und konvertieren Sie diese Daten (Währungsdetails) in HTML Code.
Die hier verwendete URL lautet https://finance.yahoo.com/quote/usdinr=X?ltr=1
htmldata
=
getdata(
"https://finance.yahoo.com/quote/usdinr=X?ltr=1"
)
soup
=
BeautifulSoup(htmldata,
'html.parser'
)
result
=
(soup.find_all(
"div"
,
class_
=
"D(ib) Va(m) Maw(65%) Ov(h)"
)
Ausgabe:
Schritt 4: Filtern Sie die Währungsdetails und die Qualität (Inkrementieren / Dekrementieren) gemäß den angegebenen Daten.
mydatastr
=
''
for
table
in
soup.find_all(
"div"
,
class_
=
"D(ib) Va(m) Maw(65%) Ov(h)"
):
mydatastr
+
=
table.get_text()
(mydatastr)
Ausgabe:
'73 .2610-0.2790 (-0,38%) Ab 15:30 Uhr BST. Markt offen. '
Nachfolgend finden Sie das vollständige Programm, das mit dem tkinter- Modul implementiert wurde .
from
tkinter
import
*
import
requests
from
bs4
import
BeautifulSoup
def
getdata(url):
r
=
requests.get(url)
return
r.text
def
get_info():
try
:
htmldata
=
getdata(
"https://finance.yahoo.com/quote/usdinr=X?ltr=1"
)
soup
=
BeautifulSoup(htmldata,
'html.parser'
)
mydatastr
=
''
for
table
in
soup.find_all(
"div"
,
class_
=
"D(ib) Va(m) Maw(65%) Ov(h)"
):
mydatastr
+
=
table.get_text()
list_data
=
mydatastr.split()
temp
=
list_data[
0
].split(
"-"
)
rate.
set
(temp[
0
])
inc.
set
(temp[
1
])
per_rate.
set
(list_data[
1
])
time.
set
(list_data[
3
])
result.
set
(
"success"
)
except
:
result.
set
(
"Opps! someting wrong"
)
master
=
Tk()
master.configure(bg
=
'light grey'
)
result
=
StringVar()
rate
=
StringVar()
per_rate
=
StringVar()
time
=
StringVar()
inc
=
StringVar()
Label(master, text
=
"Status :"
, bg
=
"light grey"
).grid(row
=
2
, sticky
=
W)
Label(master, text
=
"Current rate of INR :"
,
bg
=
"light grey"
).grid(row
=
3
, sticky
=
W)
Label(master, text
=
"Increase/decrease by :"
,
bg
=
"light grey"
).grid(row
=
4
, sticky
=
W)
Label(master, text
=
"Rate change :"
, bg
=
"light grey"
).grid(row
=
5
, sticky
=
W)
Label(master, text
=
"Rate of time :"
, bg
=
"light grey"
).grid(row
=
6
, sticky
=
W)
Label(master, text
=
"", textvariable
=
result,
bg
=
"light grey"
).grid(row
=
2
, column
=
1
, sticky
=
W)
Label(master, text
=
"", textvariable
=
rate,
bg
=
"light grey"
).grid(row
=
3
, column
=
1
, sticky
=
W)
Label(master, text
=
"
", textvariable=inc, bg="
light grey").grid(
row
=
4
, column
=
1
, sticky
=
W)
Label(master, text
=
"", textvariable
=
per_rate,
bg
=
"light grey"
).grid(row
=
5
, column
=
1
, sticky
=
W)
Label(master, text
=
"", textvariable
=
time,
bg
=
"light grey"
).grid(row
=
6
, column
=
1
, sticky
=
W)
b
=
Button(master, text
=
"Show"
, command
=
get_info, bg
=
"Blue"
).grid(row
=
0
)
mainloop()
Ausgabe: