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() 
  
print(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: