Python – Details of CoronaVirus cases in various countries

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 –

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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}
      
    # returnng 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)

chevron_right


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

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.