3种方法採集表格数据

网页内部以表格格式显示了很多数据。但是,当您尝试将数据存储到本地计算机以供以后访问时,可能会非常困难。问题在于,数据嵌入在HTML内,而HTML无法以CSV等结构化格式下载。Web抓取是将数据获取到本地计算机的最简单方法。

从table抓取数据_Octoparse
来自Unicorn Startup的表格数据

我想向几乎对编码一无所知的人介绍3种从表中抓取数据的方法:

Google表格Octoparse(网页抓取工具)R语言(使用rvest软件包)

##Google表格##
在Google表格中,有一个很棒的功能,称为Import Html,它可以使用修复表达式= ImportHtml(URL,“ table”,num)从HTML页面中的表格中抓取数据。

步骤1: 打开一个新的谷歌薄板和输入t ħ Ë表达成一个空白。

将显示该公式的简要介绍。

Googlr sheet_importHTML

步骤2: 输入URL(例如:https : //en.wikipedia.org/wiki/Forbes%27_list_of_the_world%27s_highest-paid_athletes),并根据需要调整索引字段。

Google Sheet_Scrape表

通过上述两个步骤,我们可以在几分钟之内将表格抓取到Google工作表中。显然,Google表格是帮助我们直接将表格抓取到Google表格的一种好方法。但是,存在明显的局限性。如果我们计划使用Google表格跨多个页面抓取表格,那么这将是一项平凡的任务。 因此,您需要一种更有效的方法来自动化该过程。

使用网页抓取工具抓取表格
为了更好地说明我的观点,我将使用此网站向您展示抓取过程,https: //www.babynameguide.com/categoryafrican.asp?strCat=African 为了更好地说明我的观点,我将使用此网站向您展示抓取过程,

首先,下载并启动Octoparse。

步骤1: 单击Advanced Mode(高级模式)开始一个新项目。

八度解析高级模式

第2步:在框中输入目标URL,然后单击“保存URL”以在Octoparse内置浏览器中打开网站。

 输入网址

步骤3:通过3次点击创建分页:

a)在浏览器中单击“ B”

b)在“操作提示”面板中单击“全选”

c)在“操作提示”面板中单击“循环单击每个URL”

Octoparse_Pagination 1
Octoparse_Pagination 2

现在,我们可以看到在工作流框中创建了一个分页循环。

 Octoparse_Pagination 3

第4步: 点击以下内容以刮擦表格。

a)单击表第一行中的第一个单元格

b)单击“操作提示”面板中的展开图标,直到整行以绿色突出显示(通常,标记应为TR)

c)单击“操作提示”面板中的“选择所有子元素”,然后单击“提取数据”和“提取循环中的数据”

Octoaprse採集表格1
Octoaprse採集表格3
Octoaprse採集表格2
Octoaprse採集表格4

在工作流中构建了用于採集表格的循环。

Octoaprse採集表格5

步骤5:提取数据

提取数据

通过以上5个步骤,我们可以获得以下结果。

由于增加了分页功能,整个刮削过程变得更加複杂。但是,我们必须承认,Octoparse在处理批量抓取数据方面更好。

最令人惊奇的是,我们不需要了解任何编码。就是说,无论我们是不是程序员,我们都可以创建自己的“抓取工具”,以自行获取所需的数据。要进一步了解表格或表格中的抓取数据,请参阅 我可以提取表格/表格吗?

但是,如果您碰巧了解一些编码知识,并且想自己编写脚本,那么使用R语言的rvest包是帮助您抓取表格的最简单方法。

##R语言(使用rvest软件包)##
在这种情况下,我还使用该网站https://www.babynameguide.com/categoryafrican.asp?strCat=African 作为示例来演示如何使用rvest刮取表。

在开始编写代码之前,我们需要了解有关rvest软件包的一些基本语法。

html_nodes():在特定文档中选择特定部分。我们可以选择使用CSS选择器,例如html_nodes(doc,“ table td”)或xpath选择器,html_nodes(doc,xpath =“ // table // td”)html_tag():提取标籤名称。一些类似的是html_text(),html_attr()和html_attrs()html_table():解析HTML表并将其提取到R Framework。

除上述内容外,还有一些用于模拟人的浏览行为的功能。例如,html_session(),jump_to(),follow_link(),back(),forward(),submit_form()等。

在这种情况下,我们需要使用html_table()来实现我们的目标,即从表中抓取数据。

首先下载R(https://cran.r-project.org/ )。

**步骤1:**安装rvest。

安装rvest

**步骤2:**开始编写代码,如下图所示。

Library(rvest):导入rvest包
Library(magrittr):导入magrittr包
URL:目标URL
阅读HTML:从目标URL访问信息
列表:从表中读取数据

**步骤3:**在将所有代码写入R pen中后,单击“ Enter”运行脚本。现在我们可以立即获得表信息。

rvest_final结果

与使用几行代码提取表数据相比,使用网络抓取工具似乎不需要花费更多的精力。实际上,编程确实具有陡峭的学习曲线,这提高了人们进入Web抓取技术真正能力的门槛。这种情况使不在技术行业工作的人更难以在利用Web数据方面获得竞争优势。

我希望以上教程可以帮助您大致了解Web抓取工具如何帮助您获得与程序员轻鬆实现的相同结果。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章