本文概述
- 什么是网站报文?
- 程式执行
- Python3
- Python3
- Python3
- Python3
- Python3
- Python3
- Python3
冠状病毒病例在世界范围内迅速增加。本文将指导你如何通过Web爬取冠状病毒数据并将其导入Ms-excel。
什么是网站报文? 如果你曾经从网站上复制和粘贴信息, 那么你将执行与任何网络抓取工具相同的功能, 只是在微观的手动范围内。 Web抓取, 也称为在线数据挖掘, 是从网站提取或抓取数据的方法。收集这些知识, 然后将其转换为用户更易于访问的介质。它可以是电子表格或API。
方法:
- 要求网页提供回应。
- 解析并提取BeautifulsSoup()类方法和xml文件模块。
- 下载并导出数据大熊猫进入Excel。
我们需要一个网页来获取冠状病毒数据。因此, 我们将使用世界计网站在这里。 Worldometer的网页如下所示:
文章图片
数据源
程式执行 你将需要一些库, 因此首先需要安装它们。
转到命令行并安装它们。
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元素和标签等。
提取数据要找到该元素, 你需要右键单击并单击” 检查数量” 。请参考下面的快照。
文章图片
检查网站
我们需要找到合适的班级, 即class_ =” maincounter-number” 达到我们的目的。请参考下面的快照。
文章图片
寻找合适的班级
的美丽汤对象已在我们的Python脚本中创建, 并且网站的HTML数据已从页面上刮下。接下来, 我们需要从HTML代码中获取我们感兴趣的数据。
Python3
# Searching div tags having maincounter-number class
cases = soup.find_all( 'div' , class_ = 'maincounter-number' )
输入屏幕截图(检查元素):
文章图片
仍然有很多我们不想要的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)
输入屏幕截图(检查元素):
文章图片
输出如下:
文章图片
我们将使用跨度从中获取数据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.
输出如下:
文章图片
步骤5)将数据导出到Excel
我们准备将数据导出到Excel。我们将使用df.to_csv()此任务的方法。
Python3
# Exporing data into Excel
df.to_csv( 'Corona_Data.csv' )
输出如下:
文章图片
以下是上述步骤的完整程序:
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 DS课程。
推荐阅读
- Web爬网/爬虫–合法还是非法的()
- 网站信息检索|向量空间模型详细介绍
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
- 字节跳动 iOS Heimdallr 卡死卡顿监控方案与优化之路
- 强大的开源规则引擎
- 碰一碰,鸿蒙原子化服务实战
- 一文详解Spring事务注解的解析,这下你总懂了吧()
- 大话速学python做个飞机大战