[docs]def_parse_single_doses(self):url="http://103.247.238.92/webportal/pages/covid19-vaccination-johnson.php"soup=get_soup(url,timeout=30)metrics=self._parse_metrics_raw(soup,raise_err=False)ifmetrics["people_vaccinated"]!=0:raiseValueError("First dose for one dose vaccines should be 0!")returnmetrics["people_fully_vaccinated"]
[docs]def_parse_metrics_raw(self,soup,raise_err=True):elems=soup.find_all(class_="ttip")has_d3=Falseforeinelems:ifp:=e.find("p"):if(text:=p.text.strip())=="1st doses administered":dose1=clean_count(e.span.text)eliftext=="2nd doses administered":dose2=clean_count(e.span.text)eliftext=="3rd doses administered":dose3=clean_count(e.span.text)has_d3=Trueifhas_d3:return{"total_vaccinations":dose1+dose2+dose3,"people_vaccinated":dose1,"people_fully_vaccinated":dose2,"total_boosters":dose3,}ifraise_err:raiseValueError("Dose 3 data missing!")return{"total_vaccinations":dose1+dose2,"people_vaccinated":dose1,"people_fully_vaccinated":dose2,}