Python Web将冠状病毒数据收集到MS Excel中

本文概述

  • 什么是网站报文?
  • 程式执行
  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
先决条件: 使用BeautifulSoap进行网页爬取
冠状病毒病例在世界范围内迅速增加。本文将指导你如何通过Web爬取冠状病毒数据并将其导入Ms-excel。
什么是网站报文? 如果你曾经从网站上复制和粘贴信息, 那么你将执行与任何网络抓取工具相同的功能, 只是在微观的手动范围内。 Web抓取, 也称为在线数据挖掘, 是从网站提取或抓取数据的方法。收集这些知识, 然后将其转换为用户更易于访问的介质。它可以是电子表格或API。
方法:
  1. 要求网页提供回应。
  2. 解析并提取BeautifulsSoup()类方法和xml文件模块。
  3. 下载并导出数据大熊猫进入Excel。
数据来源:
我们需要一个网页来获取冠状病毒数据。因此, 我们将使用世界计网站在这里。 Worldometer的网页如下所示:
Python Web将冠状病毒数据收集到MS Excel中

文章图片
数据源
程式执行 你将需要一些库, 因此首先需要安装它们。
转到命令行并安装它们。
pip install requests pip install lxml pip install bs4

现在, 让我们看看如何使用这些库。
下面是将Web冠状病毒数据收集到Excel中的步骤:
第1步)使用要求库来抓取页面。
Python3
# Import required module import requests# Make requests from webpage result = requests.get( 'https://www.worldometers.info/coronavirus/country/india/' )

我们下载的请求库可以获取响应, 为了从网页获取请求, 我们使用request.get(website URL)方法。如果请求成功, 则将其存储为巨型python字符串。运行result.text时, 我们将能够获取完整的网页源代码。但是代码不会结构化。
注意:如果防火墙被阻止, 则此操作可能会失败Python / Jupyter。有时, 如果第一次失败, 则需要运行两次。
第2步)采用BeautifulSoap()从网站提取数据的方法。
bs4库已经具有许多内置工具和方法来从这种性质的字符串(基本上是HTML文件)中获取信息。这是一个Python库, 用于从HTML和XML文件中提取数据。使用BeautifulSoup()的方法bs4我们可以创建一个模块汤包含所有配料该网页。
Python3
# Import required modules import bs4# Creating soap object soup = bs4.BeautifulSoup(result.text, 'lxml' )

输入bs4是创建一个美丽汤目的。我们将在此处传递两件事, result.text字符串和xml文件作为构造函数参数的字符串。xml文件浏览此HTML文档, 然后找出不同的CSS类, 编号, HTML元素和标签等。
提取数据要找到该元素, 你需要右键单击并单击” 检查数量” 。请参考下面的快照。
Python Web将冠状病毒数据收集到MS Excel中

文章图片
检查网站
我们需要找到合适的班级, 即class_ =” maincounter-number” 达到我们的目的。请参考下面的快照。
Python Web将冠状病毒数据收集到MS Excel中

文章图片
寻找合适的班级
的美丽汤对象已在我们的Python脚本中创建, 并且网站的HTML数据已从页面上刮下。接下来, 我们需要从HTML代码中获取我们感兴趣的数据。
Python3
# Searching div tags having maincounter-number class cases = soup.find_all( 'div' , class_ = 'maincounter-number' )

输入屏幕截图(检查元素):
Python Web将冠状病毒数据收集到MS Excel中

文章图片
仍然有很多我们不想要的HTML代码。我们所需的数据条目包装在HTML div元素中和内部class_ =” maincounter-number” 。我们可以利用这些知识来进一步清理已抓取的数据。
第三步储存资料
我们需要以某种可以有效使用的形式保存抓取的数据。对于此项目, 所有数据将保存在Python列表中。
Python3
# List to store number of cases data = http://www.srcmini.com/[]# Find the span and get data from it for i in cases: span = i.find('span' ) data.append(span.string)# Dispaly number of cases print (data)

输入屏幕截图(检查元素):
Python Web将冠状病毒数据收集到MS Excel中

文章图片
输出如下:
Python Web将冠状病毒数据收集到MS Excel中

文章图片
我们将使用跨度从中获取数据div。我们只需要案例数, 而无需标签。所以我们将使用span.string得到这些数字, 然后将它们存储在数据[]。
现在已经有了很多案例, 我们准备将数据导出到Excel文件中。
步骤4)处理数据
我们的最后一步是将数据导出到Ms-excel, 为此我们将使用大熊猫模块。加载大熊猫模块并开始使用它, 导入软件包。
Python3
import pandas as pd# Creating dataframe df = pd.DataFrame({ "CoronaData" : data})# Naming the coloumns df.index = [ 'TotalCases' , ' Deaths' , 'Recovered' ]

【Python Web将冠状病毒数据收集到MS Excel中】数据框是2D标签数据结构, 可能是带有标签轴(行和列)的异构表格数据结构。
df = pd.DataFrame({” CoronaData” :data})用于创建一个数据框并为其命名并映射到我们之前创建的数据列表。
接下来, 我们将使用df.index.
输出如下: 
Python Web将冠状病毒数据收集到MS Excel中

文章图片
步骤5)将数据导出到Excel
我们准备将数据导出到Excel。我们将使用df.to_csv()此任务的方法。
Python3
# Exporing data into Excel df.to_csv( 'Corona_Data.csv' )

输出如下:
Python Web将冠状病毒数据收集到MS Excel中

文章图片
以下是上述步骤的完整程序:
Python3
# Import required modules import requests import bs4 import pandas as pd# Make requests from webpage url = 'https://www.worldometers.info/coronavirus/country/india/' result = requests.get(url)# Creating soap object soup = bs4.BeautifulSoup(result.text, 'lxml' )# Searching div tags having maincounter-number class cases = soup.find_all( 'div' , class_ = 'maincounter-number' )# List to store number of cases data = http://www.srcmini.com/[]# Find the span and get data from it for i in cases: span = i.find('span' ) data.append(span.string)# Dispaly number of cases print (data)# Creating dataframe df = pd.DataFrame({ "CoronaData" : data})# Naming the coloumns df.index = [ 'TotalCases' , ' Deaths' , 'Recovered' ]# Exporing data into Excel df.to_csv( 'Corona_Data.csv' )

最后结果:
Python Web将冠状病毒数据收集到MS Excel中

文章图片
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

    推荐阅读