Aplicación para obtener la tasa de USD/INR en vivo usando Python

En este artículo, vamos a escribir scripts de python para obtener información en vivo de la tasa USD/INR y enlazar con la aplicación GUI.

Módulos Requeridos:

  • bs4: Beautiful Soup es una biblioteca de Python para extraer datos de archivos HTML y XML .

Instalación:

pip install bs4
  • requests: Este módulo le permite enviar requests HTTP/1.1 muy fácilmente.

Instalación:

pip install requests

Enfoque paso a paso:

  • Extrae datos de la URL dada. Copie la URL, después de seleccionar la ubicación deseada.
  • Raspe los datos con la ayuda de las requests y el módulo Beautiful Soup.
  • Convierta esos datos en código HTML.
  • Encuentre los detalles requeridos y fíltrelos.

Implementación:

Paso 1: Importe todos los módulos requeridos.

Python3

# Import required modules
import requests
from bs4 import BeautifulSoup

 
Paso 2: Cree una función de obtención de URL 

Python3

# Function to extract html data
def getdata(url):
    r=requests.get(url)
    return r.text

 
Paso 3: ahora pase la URL a la función getdata() y convierta esos datos (detalles de la moneda) en código HTML .

La URL utilizada aquí es https://finance.yahoo.com/quote/usdinr=X?ltr=1 

Python3

# Extract and convert
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)")

Producción:

Paso 4: filtre los detalles de la moneda y la calidad (incremento/decremento) de acuerdo con los datos proporcionados.

Python3

mydatastr = ''
 
# Filter converted data
for table in soup.find_all("div", class_="D(ib) Va(m) Maw(65%) Ov(h)"):
    mydatastr += table.get_text()
 
# Display output
print(mydatastr)

Producción:

'73.2610-0.2790 (-0.38%)As of  3:30PM BST. Market open.'

A continuación se muestra el programa completo implementado utilizando el módulo tkinter .

Python

# Import required modules
from tkinter import *
import requests
from bs4 import BeautifulSoup
 
 
 
# user defined function
# to extract currency details
def getdata(url):
    r = requests.get(url)
    return r.text
 
   
   
# Function to compute and display currency detalis
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! something wrong")
 
 
 
# Driver Code       
# Create tkinter object
master = Tk()
 
# Set background color
master.configure(bg='light grey')
 
# Variable Classes in tkinter
result = StringVar()
rate = StringVar()
per_rate = StringVar()
time = StringVar()
inc = StringVar()
 
# Creating label for each information
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)
 
# Creating label for class variable
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)
 
# Create submit button
b = Button(master, text="Show", command=get_info, bg="Blue").grid(row=0)
 
mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *