网页抓取数据( 广告网站数据采集工具用哪个好?300万+用户选择八抓鱼×)
优采云 发布时间: 2022-04-15 07:18网页抓取数据(
广告网站数据采集工具用哪个好?300万+用户选择八抓鱼×)
广告网站数据采集哪个工具最好用?300+用户选择霸主语
×
在本 Pandas 教程中,我们将详细介绍如何使用 Pandas read_html 方法从 HTML 中获取数据。首先,在最简单的示例中,我们将使用 Pandas 从字符串中读取 HTML。其次,我们将通过几个示例使用 Pandas read_html 从 Wikipedia 表中获取数据。在之前的一篇文章 文章(关于 Python 中的探索性数据分析)中,我们还使用 Pandas 从 HTML 表中读取数据。
在 Python 中导入数据
在开始学习 Python 和 Pandas 时,对于数据分析和可视化,我们通常从练习导入数据开始。在前面的文章中,我们已经看到可以在Python中直接输入值(例如,从Python字典创建Pandas数据框)。但是,通过从可用来源导入数据来获取数据肯定更为常见。这通常通过从 CSV 文件或 Excel 文件中读取数据来完成。例如,要从 .csv 文件导入数据,我们可以使用 Pandas read_csv 方法。这是如何使用该方法的快速示例,但请务必查看有关该主题的博客文章 以获取更多信息。
现在,只有当我们已经拥有合适格式的数据(如 csv 或 JSON)时,上述方法才有用(请参阅 文章,了解如何使用 Python 和 Pandas 解析 JSON 文件)。
我们大多数人使用维基百科来获取我们感兴趣的主题的信息。此外,这些 Wikipedia文章 通常收录 HTML 表格。
要使用 pandas 在 Python 中获取这些表,我们可以将它们剪切并粘贴到电子表格中,然后,例如,使用 read_excel 将它们读入 Python。现在,这个任务当然可以用更少的步骤来完成:我们可以通过网络抓取来自动化它。请务必查看什么是网络抓取。
先决条件
当然,这个 Pandas 阅读 HTML 教程需要我们安装 Pandas 及其依赖项。例如,我们可以使用 pip 来安装 Python 包,例如 Pandas,或者安装 Python 发行版(例如,Anaconda、ActivePython)。以下是使用 pip 安装 Pandas 的方法: pip install pandas。
请注意,如果有更新版本的 pip 可用的消息,请查看此 文章 以了解如何升级 pip。注意我们还需要安装lxml或者BeautifulSoup4,当然这些包也可以使用pip安装:pip install lxml。
熊猫 read_html 语法
下面是关于如何使用 Pandas read_html 从 HTML 表中抓取数据的最简单语法:
现在我们知道了使用 Pandas 读取 HTML 表格的简单语法,我们可以看一些 read_html 示例。
熊猫 read_html 示例 1:
第一个例子是关于如何使用 Pandas 的 read_html 方法,我们将从字符串中读取 HTML 表格。
广告大数据获取客户——精准客源,同行客户就是你的客户
×
现在,我们得到的结果不是 Pandas DataFrame,而是 Python 列表。也就是说,如果我们使用 type() 函数,我们可以看到:
如果我们想得到那个表,我们可以使用列表的第一个索引(0)
熊猫 read_html 示例 2:
在第二个 Pandas read_html 示例中,我们将从 Wikipedia 中抓取数据。实际上,我们将获得一个 Python(也称为 pythons)的 HTML 表。
现在,我们得到一个收录 7 个表的列表 (len(df))。如果我们去维基百科页面,我们可以看到第一个表是右边的那个。但是,在这种情况下,我们可能对第二个表更感兴趣。
熊猫 read_html 示例 3:
在第三个示例中,我们将从瑞典的 covid-19 病例中读取 HTML 表格。在这里,我们将使用 read_html 方法的一些附加参数。具体来说,我们将使用 match 参数。在这之后,我们还需要对数据进行清洗,最后,我们会做一些简单的数据可视化操作。
使用 Pandas read_html 抓取数据并匹配参数:
如上所示,表格的标题是:“瑞典各县的新 COVID-19 病例”。现在,我们可以使用 match 参数并将其作为字符串输入:
广告精准大数据采集神器一键式采集精准客户,覆盖全网,轻松获客
×
这样我们只能得到这个表,但它仍然是一个数据框列表。现在,如上图所示,在底部,我们需要删除三行。因此,我们要删除最后三行。
使用 Pandas iloc 删除最后一行
现在,我们将使用 Pandas iloc 删除最后 3 行。请注意,我们使用 -3 作为第二个参数(请务必查看此 Panda iloc 教程以获取更多信息)。最后,我们还创建了这个数据框的副本。
在下一节中,我们将学习如何将多索引列名称更改为单个索引。
将多索引更改为单索引并删除不需要的字符
现在,我们要摆脱多索引列。也就是说,我们将把 2 列索引(名称)变成一个唯一的列名。在这里,我们将使用 DataFrame.columns 和 DataFrame.columns,get_level_values():
最后,正如您在“日期”列中看到的,我们使用 Pandas read_html 从 WikiPedia 表中获取了一些注释。接下来,我们将使用 str.replace 方法和正则表达式来删除它们:
使用 Pandas set_index 更改索引
现在,让我们继续使用 Pandas set_index 将日期列转换为索引。这使我们可以在以后轻松创建时间序列图。
现在,为了能够绘制这个时间序列图,我们需要用 0 填充缺失值并将这些列的数据类型更改为数字。这里我们也使用了apply方法。最后,我们使用 cumsum() 方法获取列中每个新值的累积值:
广告一小时搭建数据分析平台
×
来自 HTML 表的时间序列图
在最后一个示例中,我们使用 Pandas read_html 来获取我们抓取的数据并创建时间序列图。现在,我们还导入 matplotlib 以便我们可以更改 Pandas 图例标题的位置:
广告数据采集从进入到放弃【简介】
×
结论:如何将 HTML 读入 Pandas DataFrame
在本 Pandas 教程中,我们学习了如何使用 Pandas read_html 方法从 HTML 中抓取数据。此外,我们使用来自 Wikipedia文章 的数据来创建时间序列图。最后,我们还可以使用 Pandas read_html 通过参数 index_col 将 'Date' 列设置为索引列。
英文原文:
译者:一会儿