mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-01-18 16:27:02 +00:00
lxmlCovidDataFetch (#2416)
* lxmlCovidDataFetch * lxmlCovidDataFetch1 * Update worldometers_covid_with_lxml.py * Rename worldometers_covid_with_lxml.py to covid_stats_via_xpath.py Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
a191f89fe2
commit
c676956030
23
web_programming/covid_stats_via_xpath.py
Normal file
23
web_programming/covid_stats_via_xpath.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
"""
|
||||||
|
This is to show simple COVID19 info fetching from worldometers site using lxml
|
||||||
|
* The main motivation to use lxml in place of bs4 is that it is faster and therefore
|
||||||
|
more convenient to use in Python web projects (e.g. Django or Flask-based)
|
||||||
|
"""
|
||||||
|
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
import requests
|
||||||
|
from lxml import html
|
||||||
|
|
||||||
|
covid_data = namedtuple("covid_data", "cases deaths recovered")
|
||||||
|
|
||||||
|
|
||||||
|
def covid_stats(url: str = "https://www.worldometers.info/coronavirus/") -> covid_data:
|
||||||
|
xpath_str = '//div[@class = "maincounter-number"]/span/text()'
|
||||||
|
return covid_data(*html.fromstring(requests.get(url).content).xpath(xpath_str))
|
||||||
|
|
||||||
|
|
||||||
|
fmt = """Total COVID-19 cases in the world: {}
|
||||||
|
Total deaths due to COVID-19 in the world: {}
|
||||||
|
Total COVID-19 patients recovered in the world: {}"""
|
||||||
|
print(fmt.format(*covid_stats()))
|
Loading…
Reference in New Issue
Block a user