RedEnginePress logo
RedEnginePress
AlgorithmsLanguagesPlaygroundAbout

World Covid 19 Stats

p
#!/usr/bin/env python3

"""
Provide the current worldwide COVID-19 statistics.
This data is being scrapped from 'https://www.worldometers.info/coronavirus/'.
"""

# /// script
# requires-python = ">=3.13"
# dependencies = [
#     "beautifulsoup4",
#     "httpx2",
# ]
# ///

import httpx2
from bs4 import BeautifulSoup


def world_covid19_stats(
    url: str = "https://www.worldometers.info/coronavirus/",
) -> dict:
    """
    Return a dict of current worldwide COVID-19 statistics
    """
    soup = BeautifulSoup(
        httpx2.get(url, timeout=10, follow_redirects=True).text, "html.parser"
    )
    keys = soup.find_all("h1")
    values = soup.find_all("div", {"class": "maincounter-number"})
    keys += soup.find_all("span", {"class": "panel-title"})
    values += soup.find_all("div", {"class": "number-table-main"})
    return {key.text.strip(): value.text.strip() for key, value in zip(keys, values)}


if __name__ == "__main__":
    print("\033[1m COVID-19 Status of the World \033[0m\n")
    print("\n".join(f"{key}\n{value}" for key, value in world_covid19_stats().items()))