Skip to content

Commit

Permalink
lxmlCovidDataFetch (#2416)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
santoshrajkumar and cclauss authored Sep 11, 2020
1 parent a191f89 commit c676956
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions web_programming/covid_stats_via_xpath.py
Original file line number Diff line number Diff line change
@@ -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()))

0 comments on commit c676956

Please sign in to comment.