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