Open In App
Related Articles

Python – Details of CoronaVirus cases in various countries

Improve Article
Save Article
Like Article

In this article we will see how to make a script to get the details of corona virus cases i.e total cases, recovered cases and total deaths only by typing the name of the country.

Modules required and Installation:

Requests : Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs.

pip install requests

Beautiful Soup: Beautiful Soup is a library that makes it easy to scrape information from web pages. It sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree.

pip install beautifulsoup4

In order to make this script we have to do the following :

1. From the name of the country create URL
2. Scrape the data with the help of requests and Beautiful Soup
3. Convert that data into html code.
4. Find the required details and filter them.
5. Save the result in the dictionary.

Below is the implementation –


# 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 = "" + 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)
# 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)

Output :

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

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 21 Dec, 2021
Like Article
Save Article
Similar Reads
Complete Tutorials