您是否期待将网站上的数据爬取到Google 表格中?那么,您来对地方了,因为下面的文章将为您提供一个简单指南,告诉您如何完成这个任务。

大多数时候,当我们听到网络爬虫这个词时,我们会想到编写脚本或完整程序来收集网页上的代码或数据。而且更常见的是,所收集的数据通常需要存储在Google表格中。有趣的是,除非您的爬虫需要一些复杂逻辑集成,否则您可能不需要使用一些完整选项或自定义开发一个爬虫。您可以直接使用Google表格从所需网站提取数据 – 而且支持此功能是原生的。

在本文中,我将向您展示如何使用Google表格从网站上获取数据以及为什么要使用它以及其带来的好处。您还将了解到,在某些情况下提供的函数可能对您来说效率不够高 – 在这种情况下,您将不得不使用自定义脚本进行抓取或者选择市场上已经存在的其中一个选项。


使用 Google 表格从网站提取数据的概述

Google 表格是一款基于网络的电子表格应用程序,免费提供,您可以用它来操作数据并进行一些计算。数据以行和列的形式呈现,并支持一些简单和高级的数学和静态计算。传统上,这就是它的目的。

然而,近年来,企业发现自己需要从互联网上的远程来源获取数据并使用这些数据来制定业务决策。 Google 表格抓住了这一点,并为一些工具提供了支持,使他们可以轻松地做到这一点。使用Google 表格抓取数据是通过 Google 表格函数完成的——与您在输入栏中输入的函数相同,用于执行一些计算和数据操作。但是,您需要遵循特定的语法才能实现这一点。

重要的是要重复一遍,如果您的网络抓取任务很复杂,那么这将是低效的。此外,如果您的任务向网站发送太多网络请求,您仍然需要代理,因为 Google 表格仍然会向目标网站提供您的真实 IP 地址。


使用Google 表格从互联网上抓取数据的好处

数据是新鲜且已更新的

使用 Google 表格从互联网上抓取数据的主要优点之一是,您抓取的数据是新鲜且更新的。到目前为止,您保持该选项卡打开,并且已连接到互联网;它会通过发送网络请求来刷新数据,为您获取更新的数据。与其他数据收集方法相比,这是更进一步的一步,并且非常适合实时数据分析,而不是一次性收集数据。

便于使用

您不需要具备编码知识即可使用 Google 表格工具进行网络抓取。您所需要的只是学习如何使用导入功能从目标收集数据。您可能需要学习一些编程概念,例如 XPATH 或 HTML 元素。但这很容易做到,不需要您重新学习编程语言。

适合简单的抓取任务

有时,您所需要的只是从页面中获取表格或从 CSV 文件中获取数据。这并不保证您作为开发人员启动 IDE 来开始编写代码。您只需使用Google 表格抓取功能即可完成此操作。只需一个函数、页面的 URL 以及元素的路径或元素名称,您就可以获取数据。


使用Google 表格抓取数据的函数

公式栏位于电子表格的顶部,是您用来从感兴趣的网站抓取数据的工具栏。该方法简单明了,即使非编码人员也可以学习。您无需学习任何编程语言即可开始。这是因为它使用的是函数。您需要在功能栏中输入功能,然后运行它,它会自动为您获取抓取的Dione。网页抓取没有一个函数,而是一组函数。每个功能都有其特定的用途。让我们看一下一些流行的Google 表格网页抓取功能。

导入HTML

IMPORTHTML 是将数据从网页抓取到 Google 表格的最流行的功能。使用此函数的语法简单明了。

=IMPORTHTML(网址、查询、索引)

其中 URL 是包含要抓取的数据的页面的 URL,查询包含要抓取的数据类型,索引指定页面上显示的所需的特定表。第一个表是 1,第二个表是 2,依此类推。

IMPORTHTML 函数用于从页面上的表格、列表和许多其他数据类型等元素中抓取数据。如果元素类型是表格或列表,您将无需担心清理问题,因为 Google 表格会为您做这件事。让我们看看如何利用这个函数来收集下表的数据。

=IMPORTHTML(“https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States”,“表”,2)

如果正确运行上述命令,您将获得受美国各州列表及其相关数据欢迎的电子表格,如下面的维基百科所示。

维基百科

该函数只会为您抓取文本,而忽略超链接和图像。让我们向您展示如果运行上面的代码会发生什么。下面是我运行代码时出现的屏幕截图。

运行代码

导入XML

上述方法用于从 HTML 页面中抓取数据。在超过 95% 的情况下,您的目标网页将以 HTML 编写,因为这是事实上的标准。但是,在某些情况下,您的目标站点将以 XML 编写。但在大多数情况下,XML 文件用作数据存储或格式,而不是用于定义页面的结构。在这种情况下,上述函数将不起作用,您必须使用 IMPORTXML 函数。以下是 IMPORTXML 函数的语法。

=IMPORTXML(url, xpath_query)

可以看到,这里的参数是URL和xpath_query。 URL 已经不言自明了。但 XPATH 查询需要一些解释。 XPATH 是一种使用类似路径的语法来定位 XML 文档中的元素的语言。在下面的 IMPORTXML 示例中,获取注释发送对象的 XPATH 是(“//note/to”)。以下是截至我上次查看该页面时的页面内容。

XML文档

正如您在上面所看到的,XML 文件包含一个注释,其中包含收件人、发件人、标题和正文等详细信息。用于抓取注释发送到的用户的 XPATH 是(“//note/to”)。您将需要 XPATH 指南来学习如何全面使用它。这是一份很好的指南,您可以在 W3Schools 网站 上开始使用。抓取上面注释的收件人的命令如下。

=IMPORTXML(“https://www.w3schools.com/xml/note.xml”,“//note/to”)

导入数据

IMPORTDATA 是一项易于使用的功能。它用于从 CSV 或 TSV 文件中抓取数据。如果您有 CSV 文件的 URL,其中包含要复制到 Google 表格的数据,则可以使用 IMPORTDATA 函数来完成此操作。该函数是Google 表格中抓取数据的所有函数中最简单的一个。

这是因为它仅将文件的 URL 作为参数。以下是如何使用 IMPORTDATA 函数将 CSV 或其他类似数据从另一个网站提取到 Google 表格的语法。

=导入数据(网址)

假设我想抓取此页面上显示的汽车详细信息 (https://opendata.com.pk/dataset/pakistan-used-cars/resource/7564b6fc-d75a-4a09-b109-5439a6cbaae7)。按照此处呈现的方式,人们可以使用 IMPORTHTML,然后将要抓取的元素作为表格传递,这应该会发挥作用。但在这里,我想向您展示的是如何抓取 CSV 文件。因此,单击页面右上角的下载按钮,然后右键单击 CSV 选项并复制链接。现在将其作为 IMPORTDATA 的参数传递,如下所示。

=IMPORTDATA(“https://opendata.com.pk/dataset/pakistan-used-cars/resource/7564b6fc-d75a-4a09-b109-5439a6cbaae7“)

如果运行上述命令,您应该会在 Google 表格文档中看到数据,如下所示。

Google 表格文档

使用Google 表格进行网页抓取的限制

不可扩展

如果您熟悉上述内容,您就会知道它可以帮助您从网站提取数据。但它能在所有情况下为您提供帮助吗?如果您需要从数百页中收集表格,会发生什么情况?这将涉及您执行手动任务,对吧?嗯,这是这种方法的缺点之一。它的目的是抓取一次性数据。如果您必须从一个页面抓取到另一页面,则必须手动复制 URL 并逐个抓取页面。这使其成为不可扩展的网络抓取解决方案。

仅支持 GET 请求

如果您熟悉 HTTP 方法,您就会知道有 GET、POST、DELETE 和 PUT 方法。 Google 表格 IMPORT 系列函数仅支持 GET。如果您需要在访问目标之前发送 POST 请求,那么 Google 表格抓取不适合您。您需要使用编程语言定制开发网络抓取工具或使用已经制作的抓取工具。

不支持自定义标头和代理

还记得我提到过你只能用它完成简单的任务吗?当您需要自定义请求标头时,这不是一个选项,因为不支持此操作。它发送自己的用户代理字符串,该字符串可能会被阻止。更糟糕的是,不支持代理。这意味着如果您从目标获取太多 IP 地址,您的 IP 地址可能会被阻止。缺乏可定制性是您可能希望选择更灵活的网络抓取解决方案而不是坚持使用的原因之一。

没有复杂的逻辑

对于许多人来说,在抓取任务时,达到目标很容易,而且不需要做太多事情。如果这是您的目标,并且您只需要一个 GET 请求即可访问您的数据点,那么就没有问题。但是,当您需要编写复杂的逻辑、填写表格、按下按钮、模仿人类交互等时,就该寻求不同的替代方案了。


Google 表格数据抓取的最佳替代方案

如前所述,使用Google 表格从互联网上抓取数据只能用于简单的抓取任务。对于复杂的或需要抓取很多页面的内容,您不能使用Google表格。那么还有什么选择呢?

定制开发刮刀

如果您是一名编码员,您可以使用您最精通的编程语言开发网络抓取工具来抓取互联网上的任何数据。但是,如果您正在寻找建议,那么Python相当流行且易于学习。有一些库和框架可以简化您的工作。 Requests 和 BeautifulSoup 是首选。但如果你需要在 Javascript 交互背后抓取数据,那么它们就不起作用,Selenium 会完成这项工作。对于成熟的抓取框架,您可以使用 Scrapy。

使用无代码抓取器

如果您不是编码员,则可以使用无代码抓取工具。这些是网络抓取工具,您无需编写任何代码即可使用。 Octoparse、ScrapeStorm 和 WebScraper.io 扩展程序是流行的选择。对于其中任何一个,您都会获得一个点击界面,您可以通过该界面识别目标数据点,以便根据您想要收集的数据来训练工具。其中一些甚至是人工智能驱动的,可以自动为您识别页面上的重要数据点。

使用网页抓取 API

有时,即使作为开发人员,您也可能不想承受开发网络抓取工具并对其进行管理的压力。在这种情况下,您可以使用网页抓取 API。这是一个网络抓取工具,可以为您处理代理、验证码、无头浏览器和所有形式的块。您只需发送一个网络请求,它就会返回页面内容供您解析。有些甚至支持解析,您可以在其中定义目标数据的选择器。其他选择器适用于网站,因此无需定义选择器 — 它们会以 JSON 格式返回重要数据。 ScraperAPI、ScrapingBee 和 Smartproxy 抓取 API 等是这里的主要参与者。

使用专业的数据服务

如果上述任何替代方案都不适合您,那么您的最后一个选择是支付专业数据服务的费用,以帮助您提供所需的数据。您可以在不同的平台上找到准备为您提供所需数据的开发人员和数据专业人员。您可以使用 Upwork 或 Fiverr 等自由平台,或使用 Octoparse 等专业数据服务。


有关 Google 表格抓取的常见问题解答Google 表格抓取

1. 使用Google 表格抓取数据是否符合道德规范?

该工具为抓取而开发的方式本身就使其在某种程度上符合道德——另一部分留给你。首先,您不能用请求使其过载,除非您使用某种形式的脚本(应用程序脚本)或浏览器扩展来自动执行该操作。除此之外,不支持自定义请求标头 – 网站可以告诉您正在通过 Google 表格访问它们。也不支持代理,这意味着网站可以决定阻止您 – 但有一种解决方法可以解决此问题。

2. 与使用 Google 表格抓取功能相关的常见错误有哪些?

最常见的错误之一是“结果太大”,尤其是在使用 IMPORTXML 函数时。如果您收到此消息,那是因为Google 表格抓取工具无法提取与您要抓取的数据一样大的数据。您可以使用 XPATH 函数来减小数据的大小,以便它可以逐块地抓取数据。另一种错误类型是#REF。如果出现此错误,则意味着您需要添加更多单元格,并且结果应该被废弃。您还需要学习一些其他称为易失性函数的函数。

3. 我可以使用 Google App 脚本抓取数据吗?

Google App Script 是Google 表格的脚本语言,您可以使用它从互联网上抓取数据。它实际上是使用Google 表格抓取功能的替代方案之一。这里唯一的问题是您需要学习该语言,因为它是一种编程语言,如果您想为Google 表格或浏览器扩展进行开发,该语言可能不是您想要学习的语言。


结    论

从上面可以看出,使用Google表格从互联网中获取数据是多么容易。尽管它有一些缺点,但其简单性是使其脱颖而出并始终吸引大量用户的一个特点。学习如何使用它、应该使用它的领域以及应避免使用但可以选择替代方案的方面将对您非常有帮助。我在上文中涵盖了所有这些内容。

这篇文章有用吗?

点击星号为它评分!

平均评分 / 5. 投票数:

到目前为止还没有投票!成为第一位评论此文章。

No more articles