[docs]defread(self):"""Create data."""withget_driver()asdriver:driver.get(self.source_url)time.sleep(5)# Get elementelem=driver.find_element_by_partial_link_text("Weekly Bulletin on COVID-19")# Build datadata=self._parse_data(elem)returndata
[docs]def_parse_date(self,element):"""Get data from report file title."""r=r".* \(Last updated: (\d\d\/\d\d\/20\d\d) .*\)"returnextract_clean_date(element.text,r,"%d/%m/%Y")
[docs]def_parse_data(self,element):# Obtain pdf urlurl=element.get_property("href")# Obtain date from elementdate=self._parse_date(element)# Extract table datadf=self._parse_pdf_table(url)# try:total_vaccinations=clean_count(df.loc["Total de doses administradas","Unnamed: 3"])people_vaccinated=clean_count(df.loc["N o Pessoas inoculadas com pelo menos uma","Unnamed: 3"])people_only_2_doses=clean_count(df.loc["N.o de pessoas vacinadas com a 2a dose","Unnamed: 3"])people_only_3_doses=clean_count(df.loc["N.o de pessoas vacinadas com a 3a dose","Unnamed: 3"])people_only_4_doses=clean_count(df.loc["N.o de pessoas vacinadas com a 4a dose","Unnamed: 3"])# except Exception as e:# print(e)# print(df.index)data={"total_vaccinations":total_vaccinations,"people_vaccinated":people_vaccinated,"people_fully_vaccinated":people_only_2_doses+people_only_3_doses+people_only_4_doses,"total_boosters":people_only_3_doses+people_only_4_doses,"source_url":url,"date":date,}returndata