En este artículo, veremos cómo hacer un script para obtener los detalles de los casos de coronavirus, es decir, casos totales, casos recuperados y muertes totales solo escribiendo el nombre del país.
Módulos requeridos e Instalación:
Requests: Requests le permite enviar requests HTTP/1.1 de forma extremadamente sencilla. No es necesario agregar manualmente strings de consulta a sus URL.
pip install requests
Beautiful Soup: Beautiful Soup es una biblioteca que facilita extraer información de las páginas web. Se asienta sobre un analizador HTML o XML, proporcionando modismos Pythonic para iterar, buscar y modificar el árbol de análisis.
pip install beautifulsoup4
Para hacer este script tenemos que hacer lo siguiente:
1. A partir del nombre del país, cree una URL
. 2. Extraiga los datos con la ayuda de requests y Beautiful Soup
. 3. Convierta esos datos en código html.
4. Encuentre los detalles requeridos y fíltrelos.
5. Guarde el resultado en el diccionario.
A continuación se muestra la implementación:
Python3
# importing libraries from bs4 import BeautifulSoup as BS import requests # method to get the info def get_info(country_name): # creating url using country name url = "https://www.worldometers.info/coronavirus/country/" + country_name + "/" # getting the request from url data = requests.get(url) # converting the text soup = BS(data.text, 'html.parser') # finding meta info for cases cases = soup.find_all("div", class_ = "maincounter-number") # getting total cases number total = cases[0].text # filtering it total = total[1 : len(total) - 2] # getting recovered cases number recovered = cases[2].text # filtering it recovered = recovered[1 : len(recovered) - 1] # getting death cases number deaths = cases[1].text # filtering it deaths = deaths[1 : len(deaths) - 1] # saving details in dictionary ans ={'Total Cases' : total, 'Recovered Cases' : recovered, 'Total Deaths' : deaths} # returning the dictionary return ans # setting country name country_name = "us" # calling the get_info method us = get_info(country_name) # printing the results for us print("Cases in United States") for i, j in us.items(): print(i + " : " + j) print("----------------------------") # setting country name to india country_name = "india" # calling the get_info method india = get_info(country_name) # printing the results for us print("Cases in India") for i, j in india.items(): print(i + " : " + j)
Producción :
Cases in United States Total Cases : 654,343 Recovered Cases : 56,618 Total Deaths : 33,490 ---------------------------- Cases in India Total Cases : 12,759 Recovered Cases : 1,514 Total Deaths : 423
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA