直接回答要在 2026 年抓取 Google AI 模式的数据,您应该避免使用浏览器自动化,而是将其视为结构化数据提取问题。构建一个带有 udm=50 参数(AI 模式)的 Google 搜索 URL,并将其发送到…… Crawlbase Crawling API 使用 format=json 的常规令牌(可选择性地包含 scraper=google-serp),然后解析并规范化响应,生成 response_text、citations 和 links 等稳定字段。这种方法无需管理无头浏览器、代理或 UI 级解析,即可提供可靠且机器可读的输出。

谷歌的AI模式正在改变搜索结果的呈现方式。它不再返回链接列表,而是生成一个由多个来源支持的直接答案,将摘要、引用和相关内容融合在一起。

对于开发者和SEO团队来说,这开辟了一种全新的数据集。他们不再仅仅收集排名数据,而是收集与搜索查询相关的实际答案,以及这些答案背后的来源。

本指南将引导您完成如何使用 Python 设置管道。 Crawlbase Crawling API 获取、解析和整理 AI 模式结果为 JSON 格式,以便您可以存储、比较并将其插入分析或内容工作流程。

如需完整的、可用于生产环境的实现,请参阅 ScraperHub 上的项目仓库: ScraperHub/how-to-scrape-google-ai-mode-in-2026

跳转到:

谷歌AI模式如何进行网络爬虫

谷歌的AI模式是为真实用户而非网络爬虫设计的。其界面是动态的,内容会逐步加载并根据用户交互而变化。因此,尝试直接从用户界面提取数据很快就会变得不可靠。

对于网络爬虫来说,更稳定的方法是专注于两件事: 触发 AI 模式的 URL幕后返回的数据与其处理布局更改或时间问题,不如处理可预测的请求和结构化的响应。

本指南中的示例项目构建 Google AI 模式 使用 URL udm=50以及诸如以下标准参数 q, glhl,和可选 uule 用于位置定向。实现方式很简单,如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
“为 AI 模式构建 Google 搜索网址 (udm=50)”。

,来自 __未来__ 进口 注释

,来自 urllib.parse 进口 quote_plus,urllencode


DEF 构建谷歌AI模式搜索网址(
询问: STR,
*,
点此查看 STR = “我们”,
hl: STR = “en”,
uule: STR | 没有 = 没有,
)-> STR:
“”“
返回一个 https://www.google.com/search 网址,该网址会打开 AI 模式。

``uule`` 是可选的编码位置(参见 Google 的 uule 参数)。
“”“
if 不会 询问 or 不会 query.strip():
提高 值错误(查询语句不能为空)
参数: 名单[元组[STR, STR]] = [
(“udm”, “50”),
(“q”,query.strip()),
("gl",gl),
("hl",hl),
]
if uule:
params.append((“uule”,uule))
qs = urlencode(params, quote_via=quote_plus, safe="")
回报 f“https://www.google.com/search?{qs}"

来源: google_ai_mode/google_ai_mode_url.py

此函数充当流程的入口点。您传入一个查询,即可获得一个统一的 AI 模式 URL。之后,其余的工作流程就非常简单:发送请求即可。 Crawlbase然后将响应规范化为系统可以使用的结构化数据。

为什么你应该避免抓取谷歌AI模式的用户界面

你可以通过自动化浏览器来抓取 AI 模式的数据,但这会带来一些弊端。

一旦采用这种方法,就必须应对渲染延迟、时序问题以及谷歌每次更新界面时选择器失效等问题。除此之外,还要管理机器人检测,以及大规模运行和维护浏览器实例带来的额外开销。

它适用于小型系统,但随着规模扩大,它会变得脆弱且昂贵。

采用 JSON 优先的方法可以简化整个流程。无需重现用户交互,只需将其简化为:

请求 → 响应 → 解析

没有浏览器层,没有用户界面依赖项,故障点也少得多。

创新中心 Crawlbase 帮助您抓取 Google AI 模式

Crawlbase 负责数据采集层。它不仅仅是转发请求,还负责获取页面、处理阻塞,并返回可供使用的结构化响应。

在这种配置下,HTTP 客户端有意保持简单。你只需发送一个 GET 请求即可。 https://api.crawlbase.com/ 需要满足以下几个条件: token, urlformat=json。 您还可以包括 scraper=google-serp 如果你想 Crawlbase 申请 页面特定解析除非您禁用它,否则示例 CLI 默认使用此功能。

示例项目中的实现如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
极简 Crawlbase Crawling API 客户。”””
,来自 __未来__ 进口 注释
,来自 键入 进口 任何
进口 要求
CRAWLBASE_API = “https://api.crawlbase.com/”

DEF fetch_crawlbase_json(
target_url: STR,
*,
令牌: STR,
刮刀: STR | 没有 = 没有,
响应格式: STR = “ json”,
暂停: 浮动 = 90.0,
额外参数: 字典[STR, 任何] | 没有 = 没有,
)-> 字典[STR, 任何]:
“”“
的GET Crawling API 使用“`format=json``。
返回已解析的顶级 JSON(``original_status``、``pc_status``、``url``、``body`` 等)。
“”“
参数: 字典[STR, 任何] = {
“令牌”:令牌,
“网址”: target_url,
“格式”: response_format,
}
if 刮刀 is 不会 没有 刮刀!= "":
参数[“刮刀”] = 刮刀
if 额外参数:
HPMC胶囊 k,v in extra_params.items():
if v is 没有:
继续
params[k] = “真正” if v is 其他 (“错误的” if v is 其他 v)
标头= {“接受编码”: gzip、deflate}
resp = requests.get(CRAWLBASE_API, params=params, headers=headers, timeout=timeout)
resp.raise_for_status()
回报 resp.json()

来源: google_ai_mode/crawlbase_client.py

此时,您不再需要处理浏览器状态或原始 HTML。您将收到包含页面内容和元数据的结构化 JSON,可以直接将其导入您的解析器。

需要记住的一个重要细节:即使您请求的是 AI 模式 URL, google-serp 爬虫可能会返回更传统的搜索引擎结果页面 (SERP) 格式的 JSON 数据。这是预期行为。示例规范化器旨在处理这两种格式。

这正是这种设置实用之处。您无需受限于单一的响应格式,也无需不断追赶用户界面的变化。

从宏观层面来看,该流程大致如下:

首先输入查询,将其转换为 AI 模式 URL,然后发送出去。 Crawlbase然后将 JSON 数据规范化为结构化输出。之后,数据可以写入文件、存储或传递给下游系统。

从谷歌AI模式结果中提取哪些数据

拿到 JSON 响应后,下一步是确定哪些数据真正重要。你不需要把所有内容都包含在有效负载中,而是需要一组稳定且有用的字段。

在这种设置下,输出被归一化为三个核心字段:

时间领域
摘要文本results[0].content.response_text
引用(URL + 片段)results[0].content.citations
参考链接results[0].content.links

这些都直接对应着人工智能模式的工作原理。你会得到一个生成的答案、一组支持该答案的来源,以及一组与查询相关的更广泛的链接。

提取逻辑在规范化器中处理。它不依赖固定键,而是查找多个可能的字段,并在需要时回退到固定键。这一点很重要,因为响应形状会根据其处理方式而变化。 Crawlbase 或者谷歌会构建有效载荷。

以下是核心提取功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
DEF 提取内容字段(解析体: 任何)-> 字典[STR, 任何]:
“”“
从解析后的“body”(字典/列表/字符串)中提取“prompt”和“response_text”,
``citations``、``links`` 和可选的 ``parse_status_code``。
“”“
root = _parse_body_field(parsed_body)
serp = _adapt_crawlbase_google_serp(root) if 是实例(根, 字典) 其他 没有

prompt = _deep_find_first_str(root, (“迅速的”, “询问”, “q”, "search_query"))
response_text = _deep_find_first_str(

(
"response_text",
"result_text",
“回答”,
“文本”,
“ai_overview”,
“片段”,
),
)
citations = _deep_find_list_of_linkish(root, (“引用”, “来源”, “参考”))
links = _deep_find_list_of_linkish(root, (“链接”, “相关链接”, "organic_links"))

if 不会 链接 是实例(根, 字典):
alt: 名单[字典[STR, STR]] = []
HPMC胶囊in (“有机的”, “结果”, “搜索结果”, 《人家也问》):
ifin 根:
_collect_link_dicts(root[key], alt)
if alt:
链接 = alt[:200]

if 搜索引擎排名:
if serp.get(“引用”):
引用 = serp[“引用”]
if serp.get(“链接”):
链接 = serp[“链接”]
if 不会 响应文本 serp.get("response_text"):
response_text = serp["response_text"]

解析代码 = 没有
if 是实例(根, 字典) "parse_status_code" in 根:
parse_code = root.get("parse_status_code")

回报 {
“迅速的”: 迅速的 or "",
"response_text":响应文本 or "",
“引用”:引文,
“链接”链接,
"parse_status_code": 解析代码,
}

来源: google_ai_mode/normalize.py

这种方法能使解析器保持灵活性。它不假定单一的响应格式,即使有效负载在 AI 式响应和更传统的 SERP 结构之间转换,它也能继续正常工作。

  • response_text 这是您可以分析或显示的生成答案。
  • citations 支持该答案的资料来源是什么?
  • links 为您提供更广泛的相关结果

如果您正在构建仪表板或管道,这种结构足以支持大多数用例,而不会使您的架构过于复杂。

2026 年谷歌 AI 模式数据抓取分步指南

最快的入门方法是在本地运行我们的示例项目。它会处理 URL 生成, Crawlbase 开箱即用的请求和规范化功能。

您需要最新版本的 Python (3.10 或更高版本)已安装,用于运行此项目,以及 Crawlbase 帐户 和一个普通的 Crawling API 象征.

步骤 1:克隆存储库

1
混帐 克隆 https://github.com/ScraperHub/google-ai-mode-scraper.git

这为您提供了完整的可运行实现,包括 CLI 和解析逻辑。

在代码仓库中,实际代码位于代码目录中。请进入该目录:

1
cd google-ai-mode-scraper

您现在应该看到:

  • requirements.txt
  • .env.example
  • google_ai_mode/

剩余所有步骤均应在此目录下运行。

步骤 2:设置虚拟环境

设置一个独立的 Python 环境,以避免依赖项与系统软件包冲突:

1
python -m venv .venv

激活它:

  • Windows(PowerShell)
1
.venv\Scripts\Activate.ps1
  • macOS / Linux
1
资源 .venv/bin/activate

激活后,您的终端应该会显示 (.venv) 这表明 Python 和 pip 仅限于此项目。

第 3 步:安装依赖项

安装所需的 Python 包:

1
pip install -r requirements.txt

这将安装以下所有必需组件:

  • 叫 Crawlbase Crawling API
  • 解析响应
  • 运行 CLI 工具

第四步:配置您的 Crawlbase 象征

复制环境模板:

1
cp .env.example。ENV

Windows上:

1
复制 .env.example。ENV

打开 .env 文件并设置您的令牌:

1
CRAWLBASE_REGULAR_TOKEN=你的令牌在这里

务必:

  • 你正在使用 普通代币 (非浏览器启用型 API 密钥),而不是 JavaScript 令牌(浏览器启用型 API 密钥)
  • 文件保存在与以下目录相同的目录中: requirements.txt

该项目采用 python-dotenv因此,运行脚本时,该值将自动加载。

步骤 5:运行刮刀

一切准备就绪后,运行 CLI:

1
python -m google_ai_mode 您的搜索查询

计费示例:

1
python -m google_ai_mode “面向开发者的最佳人工智能工具”

这里发生了什么:

  • 查询被转换为 AI 模式 URL
  • Crawlbase 获取数据
  • 响应被规范化为结构化的 JSON 格式。

结果将直接打印在您的终端上。

步骤 6:将输出保存到文件

如果你想保存结果而不是仅仅打印出来:

1
python -m google_ai_mode 您的查询 > output.json

这会将完整的 JSON 响应写入到 output.json您可以检查或将其加载到其他工具中。

步骤 7:不传递查询语句运行(可选)

您可以在以下位置定义默认查询: .env:

1
GOOGLE_AI_MODE_QUERY=您的查询内容

然后运行:

1
python -m google_ai_mode

这对于测试或计划运行非常有用,因为你不需要每次都传递参数。

步骤8:调整参数

CLI提供了一些控制请求的选项:

附加选项它做什么
--gl设置国家/地区(默认值:美国)
--hl设置语言(默认值:en)
--no-scraper禁用 scraper=google-serp

计费示例:

1
python -m google_ai_mode “人工智能SEO工具” --gl uk --hl en

这样可以测试结果在不同地区或配置下的变化情况。

请访问README页面查看完整说明: https://github.com/ScraperHub/google-ai-mode-scraper

如何将 Google AI 模式抓取功能集成到您的应用中

如果您更喜欢将其集成到您自己的代码中而不是运行 CLI,则该项目公开了一个高级函数。

编排逻辑存在于 google_ai_mode/google_ai_mode_scrape.py但你只需要导入一个函数:

1
2
,来自 谷歌人工智能模式 进口 抓取谷歌人工智能模式
数据 = scrape_google_ai_mode(示例查询,gl=“我们”,hl=“en”)

此调用处理整个流程:

  • 构建 AI 模式 URL
  • 通过以下方式发送请求 Crawlbase
  • 解析并规范化响应

该功能会自动加载。 CRAWLBASE_REGULAR_TOKEN ,来自 .env 如果可用,则使用环境变量;否则,使用环境变量。

最终得到的是与本指南中始终使用的相同的结构化 JSON,包括 response_text, citationslinks因此,您可以将其直接插入到您的应用程序中,而无需额外的解析。

了解 Google AI 模式 JSON 响应结构

回答遵循一致的结构,具有 results 包含单个元素的数组。您需要的大部分数据都位于该对象中。

关键领域包括:

  • results[0].contentprompt, response_text, citations, links, parse_status_code
  • results[0].url → 请求的 AI 模式 URL
  • results[0].status_code, pc_status, crawl_url, token_used, scraper
  • results[0].raw_body_preview → 用于调试的原始响应简短预览

你大部分时间将与……一起工作 response_text, citationslinks.

如果您正在构建仪表板或管道,请保留 status_codepc_status 与提取的字段一起显示。这样更容易判断问题是出在解析器还是提取层。

使用谷歌AI模式进行网页抓取时常见问题(及解决方法)

抓取 Google 搜索结果并非一劳永逸。有效载荷会变化,响应格式也会改变,因此你的解析器需要足够灵活才能应对这些变化。

你最常遇到的问题都很简单:

  • 缺少令牌错误
    确保 CRAWLBASE_REGULAR_TOKEN 安顿好了 .env 或者检查您的运行环境,以及您是否从正确的目录运行脚本,以便脚本能够正确加载。
  • 401或 Crawlbase 请求错误
    请仔细检查您使用的是常规 Crawling API 令牌以及您的账户有可用积分。审核 Crawlbase 响应代码 了解各种API错误代码。
  • 输出不完整或意外
    If response_text 看起来是空的或 citations 似乎不对劲,检查一下 raw_body_preview 以及完整的回复正文。谷歌和 Crawlbase 有效载荷会不断演变,因此您的解析器可能需要进行调整。 google_ai_mode/normalize.py

当结果突然下降或出现异常时,请将最近的结果与之前的结果进行比较,尤其是…… raw_body_preview这通常可以告诉你问题是出在你的解析逻辑中,还是出在上游的响应中。

抓取 Google AI 模式的关键要点

Google AI 模式将抓取方式从提取链接转变为处理结构化的答案、引用和上下文。您无需依赖脆弱的 UI 自动化,即可构建 AI 模式 URL,并通过以下方式获取 JSON: Crawlbase并将响应规范化为您可以实际使用的字段。

这种方法能够保持流程的简洁性和稳定性。它还能让数据立即用于跟踪答案变化、分析引用来源,以及为搜索引擎优化或内部工作流程提供支持。

如果您想亲自尝试一下,请从示例项目开始,并在本地运行它。 创建一个 Crawlbase 帐户获取您的常规令牌或 API 密钥,并将其添加到您的 .env然后运行几个查询。几分钟之内,您就能获得结构化的 AI 模式数据,可用于存储、比较和构建应用。

常見問題解答

udm=50 是什么意思?

udm=50 这是一个谷歌搜索参数,用于触发搜索结果中的AI模式。当在查询URL中包含此参数时,系统会返回AI生成的响应层,而不是传统的链接列表。

例如:

1
https://www.google.com/search?q=web+scraping&udm=50&gl=us&hl=en

在浏览器中打开此网址将加载“网络抓取”查询的 AI 模式结果版本。

儿童在 Crawlbase 支持谷歌AI模式吗?

是的。 Crawlbase 可以通过请求 AI 模式 URL 并以结构化 JSON 格式返回响应来获取 Google AI 模式的结果。 google-serp 爬虫程序有时可能会返回传统的搜索引擎结果页面 (SERP) 格式的有效负载,但数据仍然可以被规范化为诸如以下字段: response_text, citationslinks 采用本指南中所示的方法。

我需要哪种类型的令牌?

你需要一个 定期 Crawling API 象征 (非浏览器启用型 API 密钥),而非 JavaScript 令牌(浏览器启用型 API 密钥)。本指南中的设置依赖于此。 Crawlbase 直接处理请求并返回 JSON,因此无需浏览器渲染。