如何使用Excel进行数据抓取?

作者 :

反应 :

评论

Excel 支持抓取网页内容 无需安装任何外部工具。. Power Query 这是最简单的方法:只需点击几下即可 提取 HTML 表格 并直接将其导入工作表中。对于更复杂的页面,该 VBA 接手并让你拥有更多控制权。.

以下是在这两种情况下进行网页抓取的方法。.

展示通过 Power Query 从网页提取数据的 Excel 界面
将网页数据导出到Excel只需几个步骤。©Christina 供 Alucare.fr 使用

如何使用 Power Query 将网页数据抓取到 Excel 中?

Power Query 是集成于 Microsoft Excel (也称为 Web Query (在某些版本中)用于从不同来源导入、转换和分析网络数据。具体来说,你可以:

  • 恢复 网络数据 来自网站、文件或数据库。.
  • 在分析这些数据之前,先对其进行清理或转换。.
  • 加载数据 自然而然 保存在电子表格中,以便你的团队能够基于最新信息开展工作。.

这是最 简单的 无需编写任何代码,即可将网页数据导出到Excel。以下是需要遵循的四个步骤。.

步骤1:访问导入工具

在 Microsoft Excel, 进入’“数据”选项卡, ,然后点击 获取数据 最后在 来自网络.

打开一个新的Excel工作表,依次点击“数据”→“获取数据”→“从网络”。.
打开一个新的Excel工作表,依次点击“数据”→“获取数据”→“从网络”。©Christina 供 Alucare.fr 使用

步骤 2:粘贴网页的 URL

粘上这个’网址 选择包含你要提取信息的网站或页面,然后确认。.

将目标网站或页面的URL粘贴到Power Query中。.
粘贴目标网站或页面的地址。©Christina 提供给 Alucare.fr

步骤3:在“浏览器”中导航”

将弹出一个窗口,显示 检测到的表. Power Query 可自动识别页面代码中的表格。选择你感兴趣的表格,例如一个 HTML表格, ,以获得一个干净的数据集。.

在 Power Query 导航器中选择已检测到的表格或数据。.
选择表格或数据。©Christina 提供给 Alucare.fr

步骤4:将数据导入Excel表格

点击 加载 将数据直接导入你的电子表格。你很快就能得到一个整洁的表格,随时可以进行分析。.

点击“加载”将网页数据导入Excel工作表。.
加载以导入数据。©Christina为Alucare.fr

要获取本网站的最新信息,请进行 右击 在你的表格中,然后点击 更新. 这样,你就能几乎实时地保持数据更新。.

开始之前需要了解的限制

Power Query 仅适用于静态HTML页面。. 如果表格未在浏览器中显示,通常是因为该页面正在以 JavaScript : 网站以 React, Angular, ,或者在滚动后显示的数据。.

在这种情况下,你有两种选择。你可以直接锁定’应用程序接口 网站在后台调用的函数,通常可在浏览器的开发者工具中看到。否则,请改用以下方法: VBA 或使用专门的工具,例如 Octoparse.

如何使用VBA和Excel宏进行网页抓取?

VBA (Visual Basic for Applications) 是集成在 Microsoft Excel 以及其他软件 Microsoft Office. 它能让你:

  • 在Excel中实现重复性任务的自动化。.
  • 创建 宏, ,即直接在你的文件中运行的小程序。.
  • 打开网页,提取文本或表格,然后自动将其粘贴到Excel中。.

这比……更技术性 Power Query, ,但你会获得一个 高级控制 : 在多个页面之间切换、管理带身份验证的连接、收集Power Query无法检测到的数据。.

以下是一个从页面中获取HTML表格的宏示例:

Sub ScraperTableau()

 ' 对象声明
    Dim http As Object, html As Object
    Dim tableau As Object, ligne As Object, cellule As Object
    Dim i As Long, j As Long

 ' 待抓取页面的URL
    Dim url As String
    url = "https://www.w3schools.com/html/html_tables.asp"
 
 ' 创建 HTTP 对象
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send

 ' 加载 HTML 内容
    Set html = CreateObject("HTMLFile")
    html.body.innerHTML = http.responseText

    ' 选取第一个找到的表格
    Set 表格 = html.getElementsByTagName("table")(0)

 ' 遍历行和列
    For i = 0 To 表格.Rows.Length - 1
        For j = 0 To 表格.Rows(i).Cells.Length - 1
 Cells(i + 1, j + 1).Value = 表格.Rows(i).Cells(j).innerText
 Next j
    Next i

End Sub

代码说明:

  • Dim http As Object, html As Object : 创建用于处理Web请求和HTML内容的对象。.
  • url = "..." :要抓取的网站URL。.
  • http.Open "GET", url, False : 发送一个 HTTP 请求以加载该页面。.
  • html.body.innerHTML = http.responseText : 将 HTML 响应插入到可操作的对象中。.
  • 设置表格 = html.getElementsByTagName("table")(0) : 针对 第一张图 的页面。
  • 双环 对于 i … 对于 j … : 读取数组中的每个单元格,并将内容粘贴到Excel中对应的单元格中。.

请注意一个重要的限制。. 该代码会发送一个 简单的HTTP请求 经由 MSXML2.XMLHTTP 并仅提取服务器返回的静态HTML。它 无法执行 JavaScript 一个页面。在现代网站上,由于网页数据是动态加载的,你将得到一个空结果。在这种情况下,需要控制一个真正的浏览器,例如使用 Selenium 和 Python.

何时应使用VBA进行网页抓取:

  • 在 需要身份验证的页面 (用户名和密码)。.
  • 当你必须……时 获取多个数组 同一页面内,或在多个页面之间切换。.
  • 为了 自动 通过按钮或预设触发器进行每日数据采集。.

Power Query 与 VBA:在 Excel 中进行数据抓取时该选择哪种方法?

在以下选项中选择 Power Query 和 VBA 这取决于你的需求以及目标网站的复杂程度。以下是一个简要的对比,以帮助你做出决定。.

标准 Power Query VBA
易用性 非常 简单的, 无代码 复杂,需要代码
灵活性 仅限于 数据 表格 高度灵活,全面掌控
学习曲线 虚弱的 高
页面类型 页面 HTML 仅限静态内容 HTTP 请求、需要身份验证的页面
用例 提取 快速地 画作 高级自动化,特定需求

实际上,, Power Query 对于初学者和大多数日常任务而言,它仍是最佳选择:只需四个步骤,即可将网页数据导入 Microsoft Excel, ,无需编写任何代码。.

选择 VBA 仅当你有一个具体需求时才 Power Query 不包括:复杂页面、身份验证、高级自动化。至于其他所有内容,, Power Query 将帮助你节省 时间.

有哪些替代Excel的网络爬虫工具?

Excel 虽然依然实用,但在处理大量网络数据时很快就会暴露出其局限性。对于更宏大的项目,其他工具便接过了接力棒。其中一些工具运行良好 无代码, ,有些则需要一点编程知识。你还会发现一些 免费工具 根据你的需求。.

无代码和低代码工具

这些工具可以实现 网络数据收集 无需编写任何代码。你只需通过可视化界面配置目标,然后将结果导出到 CSV 格式 以便直接在Excel中打开它。这对于……非常有用。 市场动态 或跟踪各类网络来源。.

  • Bright Data :一款专业、强大且专为企业的大规模需求而设计的解决方案。.
  • Octoparse a 无需编码的网页抓取工具 界面简洁,非常适合初学者,只需点击几下即可导出到Excel。.

Bright Data 界面——面向人工智能和商业智能的网络数据采集基础设施
Bright Data是专为人工智能和商业智能打造的无限网络数据基础设施。©Christina为Alucare.fr提供

编程语言

一种像……这样的语言 Python 让你能够非常灵活地抓取网站内容。你可以浏览 自动处理多页, ,管理需要身份验证的网站,并确保数据收集工作——这是使用 Power Query. 这对需要跟踪竞争对手或分析分销网络的企业来说尤其有用。.

对于复杂的项目,建议选择 使用 Python 和 BeautifulSoup 进行网络搜索. 当数据收集变得定期或规模庞大时,这是最有效的方法。.

以下是对几款在功能、灵活性和易用性方面均优于Excel的解决方案的简要对比。.

工具 / 语言 成本 复杂性 强大的
Excel (Power Query) 取决于套餐 Office 简单的 基本的
Excel(VBA) 免费(需许可证) Office) 意思是 意思是
Bright Data 每月订阅 意思是 非常高
Octoparse 每月订阅 简单的 意思是
Python (BeautifulSoup, Scrapy) 自由的 高 非常高

哪些工具和资源可以帮助使用Excel进行数据抓取?

若想进一步了解 Power Query 以及VBA,你可以将Excel与 第三方工具. 这些爬虫会将数据导出为 CSV, ,这是Excel可以直接打开的格式。这样,你就能获得一套干净、可直接分析的数据集,而无需编写任何代码。.

根据你的需求,以下是两个有用的选项:

  • A 网络搜刮扩展 针对你的浏览器,例如 Web Scraper 上 Chrome 在哪里 Firefox. 这是一款理想工具,只需点击几下即可从网站中提取数据,无需安装繁琐的软件。.
  • 这 使用 Python 进行网络搜索. 这种方法需要编写一些代码,但它能够处理 复杂页面 那 Power Query 无法检测到。.

具体来说,选择’延长 适用于临时且紧急的需求。请转至 Python 一旦你想实现定期数据采集的自动化,或者处理海量信息时。.

网络搜索合法吗?

这 网络爬虫是合法的 在某些条件下。这完全取决于该网站的使用条款、知识产权情况以及你对所收集数据的使用方式。.

实际上,这些 公共数据 通常是可以恢复的。不过,一旦你触碰了 个人资料 (姓名、电子邮箱、个人资料),请在以下字段中输入 RGPD, ,即使这些信息在互联网上已公开可查。.

在抓取网站之前,请先确认以下两点:

  • 文件 robots.txt 网站地图,其中列出了允许或禁止爬虫抓取的页面。.
  • 这 使用条件, ,其中有时会明确禁止自动收集数据。.

为了保持平静,请将自己限制在 非个人数据 并请遵循网站的更新节奏,以免造成负担。.

👍您的意见
文章内容丰富
文章客观
文章回答了我的问题
内容是最新的
🔍 发现任何错误? 告诉我们在哪里!

喜欢吗?分享它!

这些内容最初是 法语 (请参见下面的编辑器)。为了向尽可能多的国家提供帮助,我们使用 Deepl 和/或谷歌翻译 API 对该网站进行了多种语言的翻译和校对。我们每月的翻译费用高达数千欧元。如果它不是 100 % 完美,请给我们留言,以便我们进行修正。如果您对校对和提高翻译文章的质量感兴趣,请使用联系表格向我们发送电子邮件!
我们感谢您的反馈意见,以改进我们的内容。如果您想提出改进建议,请使用我们的联系表或在下面留言。 您的意见有助于我们提高网站质量 Alucare.fr


Alucare 是一家独立媒体。请将我们添加到您的谷歌新闻收藏夹,以支持我们:

在讨论区发表评论