使用Python构建 COVID19 疫苗跟踪器
众所周知,世界正面临着前所未有的挑战,世界各地的社区和经济都受到 COVID19 的影响。因此,我们将在这段时间内通过跟踪他们的疫苗来做一些有趣的事情。让我们看一个简单的Python脚本来改进跟踪 COVID19 疫苗。
需要的模块
- bs4 : Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。这个模块没有内置在Python中。要安装此类型,请在终端中输入以下命令。
pip install bs4
- requests : Requests 允许您非常轻松地发送 HTTP/1.1 请求。这个模块也没有内置在Python中。要安装此类型,请在终端中输入以下命令。
pip install requests
方法:
- 提取给定 URL 的数据表单
- 借助 requests 和 Beautiful Soup 抓取数据
- 将该数据转换为 html 代码。
- 找到所需的详细信息并过滤它们。
让我们看看脚本的逐步执行
第一步:导入所有依赖
Python3
import requests
from bs4 import BeautifulSoup
Python3
def getdata(url):
r = requests.get(url)
return r.text
Python3
htmldata = getdata("https://covid-19tracker.milkeninstitute.org/")
soup = BeautifulSoup(htmldata, 'html.parser')
res = soup.find_all("div", class_="is_h5-2 is_developer w-richtext")
print(str(res))
Python3
import requests
from bs4 import BeautifulSoup
def getdata(url):
r = requests.get(url)
return r.text
htmldata = getdata("https://covid-19tracker.milkeninstitute.org/")
soup = BeautifulSoup(htmldata, 'html.parser')
result = str(soup.find_all("div", class_="is_h5-2 is_developer w-richtext"))
print("NO 1 " + result[46:86])
print("NO 2 "+result[139:226])
print("NO 3 "+result[279:305])
print("NO 4 "+result[358:375])
print("NO 5 "+result[428:509])
第 2 步:创建 URL 获取函数
Python3
def getdata(url):
r = requests.get(url)
return r.text
第 3 步:现在将 URL 传递给 getdata函数并将该数据转换为 HTML 代码
Python3
htmldata = getdata("https://covid-19tracker.milkeninstitute.org/")
soup = BeautifulSoup(htmldata, 'html.parser')
res = soup.find_all("div", class_="is_h5-2 is_developer w-richtext")
print(str(res))
输出:
注意:这些脚本只会为您提供字符串格式的原始数据,您必须根据需要打印数据。
完整代码:
Python3
import requests
from bs4 import BeautifulSoup
def getdata(url):
r = requests.get(url)
return r.text
htmldata = getdata("https://covid-19tracker.milkeninstitute.org/")
soup = BeautifulSoup(htmldata, 'html.parser')
result = str(soup.find_all("div", class_="is_h5-2 is_developer w-richtext"))
print("NO 1 " + result[46:86])
print("NO 2 "+result[139:226])
print("NO 3 "+result[279:305])
print("NO 4 "+result[358:375])
print("NO 5 "+result[428:509])
输出: