网页抓取需要从网站检索数据,但通常需要编写复杂的逻辑才能提取清晰的结构化信息。Gemini AI 让这个过程变得更加轻松快捷。Gemini 能够使用自然语言理解原始内容并从中提取关键细节。它是一款出色的智能抓取工具。
在本博客中,您将逐步学习如何使用 Gemini AI 进行 Python 网页数据抓取。我们将指导您设置环境、提取 HTML、进行清理,并让 Gemini 完成繁重的工作。无论您是构建小型抓取工具还是进行大规模扩展,本指南都能帮助您正确开启 AI 驱动的抓取之旅。
目录
- 安装Python
- 创建虚拟环境
- 配置 Gemini
- 发送 HTTP 请求
- 使用 BeautifulSoup 提取特定部分
- 将 HTML 转换为 Markdown 以提高 AI 效率
- 将清理后的 Markdown 发送到 Gemini 进行数据提取
- 以 JSON 格式导出结果
什么是 Gemini AI?为什么使用它进行网页抓取?
Gemini AI 是 Google 开发的大型语言模型 (LLM)。它可以理解自然语言,读取网页内容,并从文本中提取有意义的数据。当你想从杂乱的 HTML 中提取干净的结构化数据时,Gemini AI 在使用 Python 进行网页抓取时非常有用。
为什么选择 Gemini AI 进行网页抓取?
传统的网页爬虫使用 CSS 选择器或 XPath 来提取内容。然而,网站结构会频繁更新,导致爬虫程序过时。有了 Gemini AI,您可以描述所需的数据(例如“获取所有产品名称和价格”),AI 会像人类一样自动完成。
使用 Gemini AI 进行抓取的好处:
- 更少的代码:您不需要编写复杂的逻辑来清理或格式化数据。
- 更智能的抓取:Gemini 能够理解自然语言,即使 HTML 结构不太好,它也能找到数据。
- 灵活性:只需极少的代码更改即可在许多不同的网站上运行。
在下一部分中,我们将向您展示如何设置环境并开始使用 Python。
设置环境
在开始使用 Gemini AI 和 Python 抓取网站之前,我们需要设置正确的环境。这包括安装 Python、创建虚拟环境以及配置 Gemini 环境。
安装Python
如果你尚未安装 Python,请从 官方网站确保安装了 Python 3.8 或更高版本。安装过程中,勾选“将 Python 添加到 PATH”复选框。
要验证 Python 是否已安装,请打开终端或命令提示符并运行:
1 | python --version |
您应该看到类似以下内容:
1 | Python的3.10.8 |
创建虚拟环境
保持项目文件干净并与全局 Python 安装目录分离是一个好主意。您可以通过创建虚拟环境来实现这一点。
在您的项目文件夹中,运行:
1 | python -m venv gemini_env |
然后激活环境:
- 在Windows上:
1 | gemini_env\Scripts\activate |
- 在 Mac/Linux 上:
1 | 资源 gemini_env/bin/activate |
一旦激活,您的终端将显示环境名称,如下所示:
1 | (gemini_env)$ |
配置 Gemini
要使用 Gemini AI 进行网页抓取,您需要一个来自 Google Gemini 平台的 API 密钥。您可以通过注册获取 谷歌人工智能工作室.
获得密钥后,将其存储在 .env
文件:
1 | GEMINI_API_KEY=你的密钥在这里 |
然后安装所需的 Python 包:
1 | pip install google-generativeai python-dotenv 请求 beautifulsoup4 markdownify |
这些库帮助我们发送请求、解析 HTML、将 HTML 转换为 Markdown 以及与 Gemini 通信。
现在你的环境已经准备好了!在下一节中,我们将逐步构建基于 Gemini 的网络爬虫。
构建基于 Gemini 的 Web 爬虫的分步指南
在本节中,你将学习如何用 Python 构建一个完整的基于 Gemini 的 Web 爬虫。我们将一步步讲解——从发送 HTTP 请求到将爬取的数据导出为 JSON。
我们将使用此示例页面进行抓取:
🔗 阁楼上的一盏灯——值得刮的书
发送 HTTP 请求
首先,我们将使用 requests
图书馆。
1 | 进口 要求 |
使用 BeautifulSoup 提取特定部分
为了避免向 Gemini 发送不必要的 HTML,我们将只提取我们需要的页面部分。

在这种情况下, <article class="product_page">
其中包含书籍详细信息。
1 | 在 bs4 进口 美丽汤 |
将 HTML 转换为 Markdown 以提高 AI 效率
像 Gemini 这样的 LLM 能够更高效、更准确地处理输入。那么,让我们使用 markdownify 库将选定的 HTML 转换为 Markdown 格式。
1 | 在 markdownify 进口 markdownify |
这消除了不需要的 HTML 混乱并有助于减少发送给 Gemini 的令牌数量,从而节省成本并提高性能。
将清理后的 Markdown 发送到 Gemini 进行数据提取
现在,将清理好的Markdown发送给Gemini AI,让它提取结构化数据,例如标题、价格、库存状态等。
1 | 进口 os |
以 JSON 格式导出结果
最后,我们将提取的数据保存到 .json
文件中。
1 | 进口 JSON |
这样,您的基于 Gemini 的 Python 网络抓取工具就准备好了!
完整代码示例
下面是完整的 Python 脚本,它将所有内容整合在一起,从获取页面到将提取的数据保存为 JSON 格式。这个脚本是使用 Gemini 构建更高级的 AI 抓取工具的绝佳起点。
1 | 进口 要求 |
示例输出:
1 | { |
Gemini AI 在网页抓取中的挑战与局限性
Gemini AI 网页抓取功能强大,但也存在一些局限性。在实际抓取项目中使用前,请务必了解这些局限性。
1. 代币使用率高
Gemini 按发送和接收的 token(文本片段)收费。如果您发送页面的完整 HTML,费用会迅速增加。因此,将 HTML 转换为 Markdown 非常有用,它可以减少 token 数量,只保留必要的内容。
2. 比传统抓取速度慢
由于 Gemini 是一个 AI 模型,与简单的 HTML 解析器相比,它需要更多时间来处理文本并返回结果。如果您要抓取多个页面,速度将成为一个重要的问题。
3. 对于复杂页面不太准确
Gemini 可能会遗漏或误解数据,尤其是在布局复杂或包含大量重复元素的情况下。与基于规则的爬虫不同,AI 模型在这些情况下可能无法预测。
4. 非实时
Gemini 需要时间来分析并返回结果,因此它不适合实时网页抓取,例如每隔几秒就监控一次价格。它更适合那些结构化数据提取比速度更重要的用例。
5. API 速率限制
与大多数 AI 平台一样,Gemini 也存在速率限制。您每分钟或每小时只能发送有限数量的请求。除非您管理 API 调用或升级到付费计划,否则扩展起来会很复杂。
创新中心 Crawlbase Smart Proxy 可以帮助您扩展
使用 Gemini AI 进行网页抓取时,你会遇到一个大问题:被网站屏蔽。许多网站会检测机器人程序,并在发现异常行为时返回错误或验证码。这时 Crawlbase Smart Proxy 用武之地。
什么是 Crawlbase Smart Proxy?
Crawlbase Smart Proxy 是一款可以抓取任何网站数据而不会被屏蔽的工具。它可以轮换 IP 地址、处理验证码,并像真实用户一样抓取页面。
当您将抓取工具的请求发送到不允许机器人的网站时,这尤其有用。
使用的好处 Crawlbase Smart Proxy 借助 Gemini AI
- ✅ 避免IP封锁: Crawlbase 为您处理代理轮换。
- ✅ 绕过 CAPTCHA:它会自动解决大多数挑战。
- ✅ 节省时间:您不需要管理您的代理服务器。
- ✅ 获取干净的 HTML:它返回可解析的内容,非常适合 AI 处理。
示例:使用 Crawlbase Smart Proxy 使用 Python
以下是如何使用 Crawlbase Smart Proxy 在将其传递给 Gemini 之前:
1 | 进口 要求 |
更换 _USER_TOKEN_
和你的实际 Crawlbase Smart Proxy 令牌。
一旦你使用 Smart Proxy,您可以将其传递给 BeautifulSoup,将其转换为 Markdown,然后使用 Gemini AI 进行处理——就像我们在本文前面向您展示的那样。
总结
Gemini AI 让 Python 网页抓取变得更智能、更轻松。它利用 AI 将复杂的 HTML 转换为清晰的结构化数据。借助 BeautifulSoup 和 Markdown 转换功能,您可以构建一个比传统方法更能理解内容的抓取工具。
对于有障碍或保护的站点,使用 Crawlbase Smart Proxy。即使在最棘手的网站上,您也不会被阻止。
本指南向您展示了如何:
- 使用 Python 构建 Gemini 驱动的抓取工具
- 使用 HTML 到 Markdown 优化输入
- 刮除水垢 Crawlbase Smart Proxy
现在您可以更智能、更快速、更高效地进行抓取!
常见问题 (FAQ)
问:我可以使用 Gemini AI 来抓取任何网站吗?
是的,您可以使用 Gemini AI 抓取许多网站的数据。但是,某些网站可能具有反机器人保护功能,例如 Cloudflare。对于这些网站,您需要以下工具: Crawlbase Smart Proxy 以避免被阻塞并顺利访问内容。
问:为什么我应该在将 HTML 发送给 Gemini 之前将其转换为 Markdown?
将 HTML 转换为 Markdown 有助于减少数据量。这使得 AI 流程运行速度更快,并减少使用的令牌数量,从而节省您的成本,尤其是在使用 Gemini AI 进行大型数据抓取项目时。
问:Gemini 比传统的网络抓取工具更好吗?
当您需要基于 AI 的内容理解时,Gemini 的功能更加强大。传统的抓取工具会提取原始数据,而 Gemini 可以汇总、清理和理解内容。为了获得最佳的抓取效果,最好将两种方法结合起来。