In this Article
Google Sheets 是一款免费的电子表格应用,广泛用于数据管理、报告和协作。如果您需要跟踪产品价格、监控竞争对手或收集研究数据,很可能已经用过这款网页应用。
在本指南中,您将了解 Google Sheets 的主要功能,例如 IMPORTXML, IMPORTHTML,,以及使用过程中可能遇到的错误和实用技巧。
为什么 Google Sheets 适合网页抓取?
总体而言,Google Sheets 并非传统的数据抓取工具,但它值得一试。许多人会使用 编程语言 和用于网页抓取的编程库。这也是相关问题经常出现在 Google 搜索结果中的原因。如果您需要收集特定数据,却不想学习新技能,Google Sheets 或许能帮您节省时间。
此外,只需一个账号,您就能使用一系列 Google 服务。Calendar、Gmail、Docs 和 Drive 共同构成完整的 Google 生态系统,各项服务触手可及。您可以轻松在各个平台存储、共享和使用数据:用 Google Sheets 抓取数据,在 Google Drive 中备份,并随时跟进任务进度。
Google Sheets 易于上手。顶部菜单提供 File、Edit、View 等常用选项;工具栏可用于撤销、重做和设置数据格式;公式栏显示公式或值;工作表标签让您在同一文件的不同工作表之间切换;网格区域则用于输入和整理数据。
此外,您可以随时随地访问和编辑电子表格,无需担心电脑崩溃或文件丢失导致工作成果遗失。所有内容都会自动安全地保存到 Google Drive。只要分享链接,受邀者便可按您设置的权限查看或编辑文件。
网页抓取的关键功能
下面来看看 Google Sheets 中用于网页抓取的主要功能。我们将重点介绍最常用的 IMPORT 函数,帮助您高效抓取数据。
IMPORTXML:从网页中提取数据
IMPORTXML 用途广泛,可通过 XPath 查询从网页中提取结构化数据,提取范围既可以是局部片段,也可以是完整内容。它可处理 XML、HTML、CSV、TSV 和 RSS 等数据类型。语法如下:
=IMPORTXML(“URL”, “xpath_query”, “locale”)
该函数包含网页 URL、用于指定导入内容的 XPath 查询,以及可选的语言和区域设置。Google Sheets 中常用的 XPath 查询包括:
- //h1, //h2, //h3: 选择标题标签(标题)。
- //img/@src: 提取图片 URL。
- //ul/li: 选择无序列表中的列表项。
- //p: 选择所有段落。
- //span: 选择所有 span 元素。
- //div: 选择结构化内容的所有 div 元素。
例如,下面从 Google Finance 抓取 Apple 的股价。先在公式中填入来源链接。
接下来,填写 XPath 查询。它会从根节点 (/html/body/…) 沿 HTML 结构定位 Apple 的股价。 要获取 XPath,请在浏览器中右键点击要导出的数据,选择 Inspect,再从 Elements 标签页复制完整的 XPath。将复制的 XPath 用于 IMPORTXML 函数,即可从网页导入数据。
locale 参数为可选项,可用于指定 en_US 等语言和区域设置。最终公式如下:
=IMPORTXML(“https://www.google.com/finance/quote/AAPL:NASDAQ?sa=X&ved=2ahUKEwiZyb2g38r-AhUMs6QKHQOjDeEQ3ecFegQIKBAY”,”/html/body/c-wiz[2]/div/div[4]”)
在这种情况下:
- URL 指向 Google Finance 上的 Apple 股票页面。
- XPath 查询选择包含股票价格的元素。
XPath 必须与网页结构相匹配。 请务必检查网站的服务条款,以确认允许抓取!
IMPORTHTML:从 HTML 表格和列表中提取数据
有时您需要城市列表等结构化数据,但现有数据集可能不完整或格式有误。与其手动搜索和复制,不如使用 Google Sheets 的 IMPORTHTML 函数。其语法包含可公开访问的 URL 或网页链接、查询类型(”列表”或”表格”),以及索引值(列表或表格在网页中的位置):
=IMPORTHTML(“URL”, “query”, index)
下面从 Wikipedia 导入英国所有城市的列表。首先,找到包含这些数据的 网页。 在网页任意位置右键点击,然后选择 Inspect(Windows 中按 F12 或 Ctrl+Shift+I,Mac 中按 Cmd+Option+I)。进入 Elements 标签页,搜索 <table> 标签以确定目标表格的序号。本例中,英国城市列表位于页面的第一个表格。打开一个新的 Google 表格,并在单元格中输入公式:
=IMPORTHTML(“https://en.wikipedia.org/wiki/List_of_cities_in_the_United_Kingdom”, “table”, 1)
按 Enter 后,几秒内该表格便会显示在电子表格中。
假设您想提取网站的菜单结构以便快速分析,也可以用 IMPORTHTML 按相同方法操作。下面从 Wikipedia 的侧边栏提取主菜单项,该侧边栏采用列表结构 (<ul>…</ul>)。接下来,选择显示数据的单元格并输入以下公式:
=IMPORTHTML(“https://en.wikipedia.org/wiki/Main_Page”, “list”, 1)
按 Enter 后,Google Sheets 会自动从 Wikipedia 首页提取第一个列表(<ul>…</ul>)。该公式提取的是第一个无序列表,您也可以将此方法用于其他网站。
通过使用 IMPORTHTML,您可以快速收集信息表、项目列表等结构化数据,无需手动复制粘贴。
IMPORTDATA:从 CSV 和 TSV 文件访问数据
该函数可将 CSV(逗号分隔值)或 TSV(制表符分隔值)格式的数据从 URL 轻松导入 Google Sheets 工作表。其语法为:IMPORTDATA 函数是:
=IMPORTDATA(“URL”)
它仅适用于 CSV 和 TSV 格式,URL 必须直接指向该文件。若文件需要身份验证,IMPORTDATA 将无法使用。借助该函数,您可将统计数据集直接导入 Google Sheets,无需手动下载。
IMPORTFEED:将 RSS 和 Atom 源导入 Google Sheets
此函数用于将 RSS 或 Atom 源中的数据导入并显示到电子表格中。语法如下:
=IMPORTFEED(“url, [query], [headers], [num_items]”)
查询、标题和提要项目数量均为可选项。本例将使用 Wikipedia 的 RSS feed 获取最近的更改,您也可以选择其他提供 RSS Feed 的网站。打开 Google Sheets,在公式中填入正确的 URL。该函数会从 Wikipedia 源中提取最新更改,并显示在电子表格中。
IMPORTRANGE:在 Google Sheets 间链接数据
IMPORTRANGE 函数允许您将数据从一张 Google 表格导入到另一张 Google 表格中。原始工作表中所做的任何更改都会自动更新。语法是:
=IMPORTRANGE(spreadsheet_url, range_string)
首先,原始工作表必须可通过链接访问。此外,请检查文档名称中的大小写和空格是否正确。
要使用该函数,请选择一个空白单元格并输入 =IMPORTRANGE()。下面来看一个示例:
然后填入要导入的电子表格 URL(即两个斜杠之间的代码)和单元格范围。本例中,我们要将教师列表导入学科列表所在的工作表。教师列表范围为 A1:A7,其中 A1 是顶部的第一个单元格,A7 是底部的最后一个单元格。
最终公式和结果如下:
这是一个文本块。点击编辑按钮即可修改此文本。
您可能会遇到的错误
如果抓取过程中没有遇到错误,您算是很幸运。面对陌生的提示信息,许多初学者都会感到困惑。以下是一些最常见的错误:
- #不适用:当值不可用或不存在于引用范围内时。
- 参考!:当函数引用了不存在的单元格时会显示此错误,例如删除了相应的行或列。
- 结果太大:这意味着输出太大,表格无法处理。尝试限制数据量。
- 数组结果未展开:函数的输出可能被相邻单元格中的现有数据阻塞。
- #VALUE!:当输入的类型错误时(例如,需要数字时是文本值)。
注意 Google Sheets 的局限性
Google Sheets 对单元格数量有所限制:一份电子表格最多可包含 1000 万个单元格或 18,278 列。每个单元格也有数据上限,不能超过 50,000 个字符。因此,它并不适合处理任意规模的数据。Google 建议不要过度使用 IMPORTXML 或 IMPORTDATA 等复杂函数,以免拖慢工作表。
Google Sheets 很适合抓取静态数据,但难以处理由 JavaScript 加载的内容。它还会限制短时间内的请求数量。因此,它不适合大规模数据抓取,也不适合提取需要复杂交互的内容。
为什么需要在 Google Sheets 中使用 代理 进行网页抓取?如果希望 Google Sheets 稳定运行,代理可帮助您分散负载。借助代理,您可以通过不同的 IP 路由请求,提高 IP 信誉和访问稳定性;同时还能访问特定地区的数据,并保持 匿名。
Google Sheets 不是一个选择?尝试自动抓取工具
如果项目规模超出 Google Sheets 的处理能力,或数据受到高级反抓取措施保护,请考虑使用专门的网页抓取工具高效提取数据。以下是一些自动抓取工具:
- Octoparse – 一款无代码网页抓取应用,无需编程技能即可从网站提取数据,尤其适合抓取由 JavaScript 加载内容的动态网站。Octoparse 提供 14 天高级版试用。
- Scrapy – 用于网页爬取和数据提取的免费开源 Python 框架。它不基于云端,用户需要自行配置所有内容,包括代理、CAPTCHAs 以及对 JavaScript 网站的处理。对初学者而言,这个抓取工具可能并非最佳选择。
- Beautiful Soup – 一个 Python 库,可用较少的代码简化文档遍历和修改,自动处理编码,并可配合 lxml、html5lib 等解析器使用,兼具灵活性和速度。
- Apify – 基于云端的网页抓取平台,提供预构建的抓取工具和自动化功能。Apify 为常见网站提供现成的 actor(抓取工具),可加快抓取流程。用户还可通过无代码编辑器或 API 创建自定义工作流。它提供免费试用,但费用可能会随使用量增加而变高。
不过,采用强大反机器人保护的网站仍可能阻止抓取工具。为获得更好的效果,请结合使用代理和抓取工具。
DataImpulse 专注于客户最需要的高质量、合规来源的代理服务。使用 DataImpulse 代理,即可享受高速连接、按 GB 付费、24/7 人工支持和个性化服务等优势。
*所提供的信息仅用于教育目的!









