import requests
from bs4 import BeautifulSoup
import numpy as np
import pandas as pd


covid_stats = 'https://epidemic-stats.com/'
response = requests.get(covid_stats)
print(response.status_code)

page_content = response.text

doc = BeautifulSoup(page_content, 'html.parser')

country_selection = 'text-primary'
country_a_tag = doc.find_all("a", {'class': country_selection})

infected_selection = 'infected-badges'
infected_span_tag = doc.find_all('span', {'class': infected_selection})

death_selection = 'deaths-badges'
death_span_tag = doc.find_all('span', {'class': death_selection})

recovered_selection = 'recovered-badges'
recovered_span_tag = doc.find_all('span', {'class': recovered_selection})

death_percent_selection = 'deaths-badges-outline'
death_percent_span_tag = doc.find_all('span', {'class': death_percent_selection})

recovered_percent_selection = 'recovered-badges-outline'
recovered_percent_span_tag = doc.find_all('span', {'class': recovered_percent_selection})

country_name = []

for country in country_a_tag:
    country_name.append(country.text.strip())

infected = []

for inf in infected_span_tag:
    infected.append(int(inf.text))

deaths = []

for death in death_span_tag:
    deaths.append(int(death.text))

recovered = []

for recover in recovered_span_tag:
    if recover.text.strip() == 'N/A':
        recovered.append(np.nan)
    else:
        recovered.append(int(recover.text))

death_percent = []

for dp in death_percent_span_tag:
    death_percent.append(float(dp.text.strip('%')))

recovered_percent = []

for rp in recovered_percent_span_tag:
    recovered_percent.append(float(rp.text.strip('%')))

covid_dict = {
    'country': country_name,
    'infected': infected,
    'deaths': deaths,
    'recoverd': recovered,
    'death_percent': death_percent,
    'recovered_percent': recovered_percent,
}

covid_data = pd.DataFrame(covid_dict)
covid_data.head()

covid_data.to_csv('covidData.csv', index=None)
