网页内部以表格格式显示了大量数据。 但是,当您尝试将数据存储到本地计算机以供以后访问时,可能会非常困难。 问题在于数据无法嵌入HTML内,而无法以CSV等结构化格式下载。 Web抓取是将数据获取到本地计算机的最简单方法。
我想向几乎对编码一无所知的人介绍3种从表中抓取数据的方法:
Google表格Octoparse(网页抓取工具)R语言(使用rvest软件包)Google表格
在Google表格中,有一个很棒的功能,称为Import Html,它可以使用固定表达式= ImportHtml(URL,“表格”,num)从HTML页面中的表格中抓取数据。
第1步:打开一个新的Google表格,并将表达式输入空白。
将显示该公式的简要介绍。
步骤2:输入URL,并根据需要调整索引字段。(例如:https://en.wikipedia.org/wiki/Forbes%27_list_of_the_world%27s_highest-paid_athletes)
通过上述两个步骤,我们可以在几分钟之内将表格抓取到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”
现在,我们可以看到在工作流框中创建了一个分页循环。
第4步:点击以下内容以刮擦表格。
a)单击表第一行中的第一个单元格
b)单击“操作提示”面板中的展开图标,直到整行以绿色突出显示(通常,标记应为TR)
c)单击“操作提示”面板中的“选择所有子元素”,然后单击“提取数据”和“提取循环中的数据”
在工作流中构建了用于刮除表格的循环。
步骤5:提取数据
通过以上5个步骤,我们可以获得以下结果。
由于增加了分页功能,整个刮削过程变得更加複杂。但是,我们必须承认,Octoparse更好地处理了批量抓取数据。
最令人惊奇的是,我们不需要了解任何编码方面的知识。就是说,无论我们是不是程序员,我们都可以创建自己的“抓取工具”来获取所需的数据。如果需要延展阅读,可以参考:https://helpcenter.octoparse.com/hc/en-us/articles/360018324051-Can-I-extract-a-table-form-
但是,如果您碰巧了解一些编码知识,并且想自己编写脚本,那么使用R语言的rvest包是帮助您抓取表格的最简单方法。
R语言(使用rvest软件包)
在这种情况下,我还以该网站https://www.babynameguide.com/categoryafrican.asp?strCat=African为例,介绍了如何使用rvest刮取表格。
在开始编写代码之前,我们需要了解有关rvest软件包的一些基本语法。
除了上述内容外,还有一些功能可以模拟人类的浏览行为。例如,html_session(),jump_to(),follow_link(),back(),forward(),submit_form()等。
在这种情况下,我们需要使用html_table()来实现我们的目标,即从表中抓取数据。
首先下载R(https://cran.r-project.org/)。
步骤1:安装rvest。
步骤2:开始编写代码,如下图所示。
Library(rvest):导入rvest包
Library(magrittr):导入magrittr包
URL:目标URL
阅读HTML:从目标URL访问信息
列表:从表中读取数据
步骤3:将所有代码写入R pen后,单击“ Enter”运行脚本。 现在我们可以立即获得表信息。

与使用几行代码提取表格数据相比,使用网络抓取工具似乎不需要花费更多的精力。 实际上,编程确实具有陡峭的学习曲线,这通常提高了人们进入Web抓取的真正能力的门槛。 这种情况使不在技术行业工作的人更难获得竞争优势来利用Web数据。
我希望以上教程可以帮助您大致了解Web抓取工具如何帮助您获得与程序员轻鬆实现的相同结果。