几个月前,我们的一位用户发来了一张 n8n 工作流截图:里面有 14 个节点、六七张便签,主题栏只写了两个字——“帮忙”。他照着一篇很火的 n8n 网页爬虫教程操作,在测试网站上跑通了一个很漂亮的 10 行演示,接着就想去抓取 200 个产品页面里的竞争对手价格。结果呢?分页循环崩了,403 错误铺天盖地,定时任务还在第一次周二之后就悄无声息地停掉了。
从演示到真正落地,这道鸿沟,正是大多数 n8n 爬虫项目“死在路上”的地方。我花了很多年做 以及自动化相关工作,可以很明确地说:真正难的往往不是“抓取”本身,而是第一次成功抓取之后的所有环节。分页、定时、反爬处理、数据清洗、导出,以及最头疼的——网站这季度第三次改版后,你还得继续维护。本文将带你完整走一遍流程:从第一个 HTTP Request 节点开始,一直讲到可循环运行、可投入生产的 n8n 网页爬虫工作流。至于 n8n 的自建方案什么时候会碰壁,我也会告诉你:在哪些场景里,像 Thunderbit 这样的 AI 工具可以帮你省下好几个小时,甚至好几天的折腾时间。
什么是 n8n 网页爬虫?为什么大多数教程都只讲了皮毛
n8n 是一个开源、低代码的工作流自动化平台。你可以把它理解成一块可视化画布:把一个个“节点”连接起来,每个节点负责一项具体任务(抓取网页、解析 HTML、发送 Slack 消息、写入 Google Sheets),然后把它们串成自动化流程。它不要求你写大量代码,但在需要的时候,你也可以直接插入 JavaScript。
所谓“n8n 网页爬虫”,就是借助 n8n 自带的 HTTP Request 和 HTML 节点(再加上一些社区节点),在自动化工作流中完成网页数据抓取、解析和处理。核心其实就两步:抓取(HTTP Request 节点从 URL 获取原始 HTML)和 解析(HTML 节点通过 CSS 选择器提取你关心的数据,比如商品名称、价格、邮箱等等)。
这个平台体量很大:截至 2026 年 4 月,n8n 在 ,拥有 23 万以上活跃用户、9,166+ 社区工作流模板,而且几乎每周都会发布一个新的小版本。它还在 2025 年 3 月完成了 。势头非常猛。
但有一个大家很少提到的断层。dev.to 上最热门的 n8n 爬虫教程之一(Lakshay Nasa 发表,隶属 “Extract by Zyte” 组织)曾承诺在“第二部分”讲分页。第二部分确实来了,而作者自己的结论是:“n8n 在 HTTP Request 节点的 Options 里提供了默认分页模式,听起来很方便,但根据我的经验,它在常见网页爬虫场景里并不稳定。” 最终作者还是把分页交给了一个付费第三方 API。与此同时,n8n 论坛用户也一直在提“分页、限流、登录”这些问题,作为 n8n 爬虫“很容易变复杂”的转折点。本文就是为了填补这个缺口而写的。
为什么 n8n 网页爬虫对销售、运营和电商团队很重要
n8n 网页爬虫不是开发者的个人爱好,而是一个真正的商业工具。2025 年全球网页爬虫市场规模大约在 ,预计到 2030 年将增长到 。仅动态定价这一项,就已经被大约 使用,而 现在都依赖另类数据,其中很大一部分来自网页抓取。麦肯锡指出,采用动态定价后,企业可实现 。
n8n 真正强的地方,不只是“拿到数据”,而是“拿到数据之后做什么”。它可以把爬虫与后续动作串成一个工作流:更新 CRM、发送 Slack 提醒、导出表格、做 AI 分析,全都放在一起跑。
| 使用场景 | 受益对象 | 抓取内容 | 业务结果 |
|---|---|---|---|
| 潜客开发 | 销售团队 | 企业名录、联系页面 | 为 CRM 补充合格线索 |
| 竞品价格监控 | 电商运营 | 产品列表页 | 实时调整价格 |
| 房产房源追踪 | 房产经纪人 | Zillow、Realtor、本地 MLS 网站 | 比竞争对手更早发现新房源 |
| 市场调研 | 市场团队 | 评测网站、论坛、新闻 | 识别趋势与客户情绪 |
| 供应商/SKU 库存监控 | 供应链运营 | 供应商产品页 | 避免缺货,优化采购 |
数据也说明了 ROI 是真实存在的: 计划在 2025 年增加 AI 投入,而自动化培育线索在 9 个月内被证明可以 。如果你的团队还在把网站内容复制到表格里,那你其实一直在把钱留在桌子上。
n8n 网页爬虫工具箱:核心节点和可用方案
在开始搭建之前,你得先知道工具箱里有哪些东西。下面是 n8n 网页爬虫最常用的核心节点:
- HTTP Request 节点:从任意 URL 获取原始 HTML。它像浏览器发起页面请求,但返回的是代码而不是渲染后的页面。支持 GET/POST、请求头、批量处理,以及(理论上)内置分页。
- HTML 节点(原名“HTML Extract”):使用 CSS 选择器解析 HTML,提取特定数据,比如标题、价格、链接、图片,等等。
- Code 节点:允许你写 JavaScript 片段,用于数据清洗、URL 规范化、去重和自定义逻辑。
- Edit Fields(Set)节点:重组或重命名数据字段,供后续节点使用。
- Split Out 节点:将数组拆分成单独条目进行处理。
- Convert to File 节点:把结构化数据导出为 CSV、JSON 等格式。
- Loop Over Items 节点:遍历列表(分页时非常关键,后面会详细讲)。
- Schedule Trigger:按 cron 定时触发工作流。
- Error Trigger:当工作流失败时向你发出提醒(生产环境必备)。
如果是更高级的抓取场景——例如 JavaScript 渲染页面或强反爬网站——你还需要用社区节点:
| 方案 | 最适合 | 技能要求 | 能处理 JS 渲染页面 | 反爬处理 |
|---|---|---|---|---|
| n8n HTTP Request + HTML 节点 | 静态网站、API | 初级到中级 | 否 | 需手动处理(请求头、代理) |
| n8n + ScrapeNinja/Firecrawl 社区节点 | 动态网站/受保护站点 | 中级 | 是 | 内置支持(代理轮换、验证码) |
| n8n + 无头浏览器(Puppeteer) | 复杂 JS 交互 | 高级 | 是 | 部分支持(取决于配置) |
| Thunderbit(AI 网页爬虫) | 任意网站、非技术用户 | 初级 | 是(浏览器或云端模式) | 内置支持(继承浏览器会话或云端处理) |
截至 v2.15.1,n8n 没有原生的无头浏览器节点。任何需要 JS 渲染的抓取,都必须依赖社区节点或外部 API。
顺便说一句,Thunderbit 是我们团队做的一款 AI 驱动 。你只需要点一下“AI Suggest Fields”,再点“Scrape”,就能拿到结构化数据——不用写 CSS 选择器,不用配置节点,也不用后期维护。接下来我会在整篇文章中告诉你:它适合放在哪里,以及什么时候 n8n 反而更合适。
分步实战:从零搭建你的第一个 n8n 网页爬虫工作流
工具箱讲完了,下面我们来从零搭一个能跑的 n8n 网页爬虫。这里我会用一个产品列表页做示例——这类页面最适合做价格监控或竞品调研。
开始前先看:
- 难度: 初级到中级
- 预计时间: 约 20–30 分钟
- 你需要准备: n8n(自托管或云端)、目标 URL、Chrome 浏览器(用于查找 CSS 选择器)
第 1 步:创建新工作流并添加手动触发器
打开 n8n,点击“New Workflow”,给它起个清楚的名字,比如“Competitor Price Scraper”。然后拖入一个 Manual Trigger 节点。(后面我们会再升级成定时触发。)
此时你的画布上应该已经出现一个节点,点击“Test Workflow”就可以触发。
第 2 步:使用 HTTP Request 节点抓取页面
添加一个 HTTP Request 节点,并连接到 Manual Trigger。把方法设为 GET,输入你的目标 URL(例如 https://example.com/products)。
接下来是很多教程都会跳过的关键一步:添加一个真实的 User-Agent 请求头。 默认情况下,n8n 会发送 axios/xx 作为 User-Agent——这在机器人识别系统里一眼就能看出来。打开“Headers”,添加以下内容:
| 请求头名称 | 值 |
|---|---|
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 |
| Accept | text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 |
如果你要抓取多个 URL,请开启 Batching(在 Options 里),并把每次请求之间的等待时间设为 1–3 秒。这样可以降低触发限流的概率。
运行这个节点。你应该能在输出面板里看到原始 HTML。
第 3 步:用 HTML 节点解析数据
把 HTML 节点连接到 HTTP Request 的输出。把操作设为 Extract HTML Content。
想找到正确的 CSS 选择器,可以在 Chrome 中打开目标页面,右键点击你想抓取的内容(比如商品标题),然后选择“Inspect”。在 Elements 面板里,右键高亮的 HTML 元素,选择“Copy → Copy selector”。
把提取项配置成这样:
| 键名 | CSS 选择器 | 返回值 |
|---|---|---|
| product_name | .product-title | 文本 |
| price | .price-current | 文本 |
| url | .product-link | 属性:href |
执行该节点。你应该能在输出中看到结构化表格——产品名、价格和 URL。
第 4 步:用 Code 节点清洗和规范化数据
原始抓取的数据通常很乱。价格可能带有多余空格,URL 可能是相对路径,文本字段末尾也可能有换行。添加一个 Code 节点,并连接到 HTML 节点。
下面是一段简单的 JavaScript,用来整理数据:
1return items.map(item => {
2 const d = item.json;
3 return {
4 json: {
5 product_name: (d.product_name || '').trim(),
6 price: parseFloat((d.price || '').replace(/[^0-9.]/g, '')),
7 url: d.url && d.url.startsWith('http') ? d.url : `https://example.com${d.url}`
8 }
9 };
10});
这一步对生产级数据非常重要。省略它,你的表格里就会充满像“$ 29.99\n”这样的脏数据。
第 5 步:导出到 Google Sheets、Airtable 或 CSV
连接一个 Google Sheets 节点(也可以是 Airtable,或者 Convert to File 导出 CSV)。完成 Google 账户授权后,选择你的表格和工作表,再把 Code 节点输出字段映射到对应列头。
运行完整工作流。你应该会看到干净、结构化的数据进入你的表格。
顺带一提: 到 Google Sheets、Airtable、Notion 和 Excel,而且完全不用配置节点。如果你不需要整条自动化链,只是想快速拿数据,这其实是个很实用的捷径。
每一篇 n8n 网页爬虫教程都会跳过的部分:完整分页工作流
分页是 n8n 爬虫内容里的第一大缺口,也是 n8n 社区论坛里第一大吐槽来源。
分页主要有两种模式:
- 点击式 / URL 递增分页 —— 例如
?page=1、?page=2这样的页面。 - 无限滚动 —— 页面会随着向下滚动不断加载内容(比如 Twitter、Instagram 或很多现代产品目录)。
在 n8n 中实现点击式分页(通过 Loop 节点递增 URL)
HTTP Request 节点 Options 菜单里的内置 Pagination 选项看起来很方便,但实际并不稳定。最热门的 n8n 爬虫教程作者之一(Lakshay Nasa)亲自试过,并写道:“按我的经验,它的表现并不可靠。” 论坛用户也经常反馈它会、或者根本识别不到最后一页。

更可靠的方法是:先在 Code 节点里显式生成 URL 列表,再用 Loop Over Items 逐条遍历。
做法如下:
- 添加一个 Code 节点,生成分页 URL:
1const base = 'https://example.com/products';
2const totalPages = 10; // 也可以动态检测
3return Array.from({length: totalPages}, (_, i) => ({
4 json: { url: `${base}?page=${i + 1}` }
5}));
- 连接 Loop Over Items 节点 来遍历列表。
- 在循环内部 添加你的 HTTP Request 节点(把 URL 设为
{{ $json.url }}),然后接 HTML 节点进行解析。 - 在循环中加入 Wait 节点(1–3 秒,最好随机化),避免触发 429 限流。
- 循环结束后,汇总结果并导出到 Google Sheets 或 CSV。
完整链路是:Code(生成 URL)→ Loop Over Items → HTTP Request → HTML → Wait →(回到循环)→ 汇总 → 导出。
有一个坑需要注意:Loop Over Items 节点有一个,就是嵌套循环时会静默跳过部分条目。如果你一边分页,一边抓取子页面,一定要仔细测试——“done” 的数量未必和你的输入数量一致。
无限滚动分页:为什么 n8n 内置节点很吃力
无限滚动页面是靠 JavaScript 在你滚动时加载内容。HTTP Request 节点只能拿到初始 HTML,无法执行 JavaScript,也无法触发滚动事件。你只有两个选择:
- 使用无头浏览器社区节点(例如 或 ),让页面渲染出来并模拟滚动。
- 使用抓取 API(如 ScrapeNinja、Firecrawl、ZenRows),并开启 JS 渲染。
这两种方案都会显著增加复杂度。通常每个网站都要花 30–60 分钟甚至更久做配置,而且后续还要持续维护。
Thunderbit 如何在无需配置的情况下处理分页
虽然我有偏向,但两者的差异确实非常明显:
| 能力 | n8n(自建工作流) | Thunderbit |
|---|---|---|
| 点击式分页 | 需要手动配置循环节点、递增 URL | 自动识别并跟随分页 |
| 无限滚动页面 | 需要无头浏览器 + 社区节点 | 内置支持,无需配置 |
| 搭建耗时 | 每个网站 30–60 分钟 | 2 次点击 |
| 每批可处理页面数 | 串行(一次一页) | 同时处理 50 页(云端抓取) |
如果你要抓 10 个分页列表中的 200 个产品页面,n8n 往往会占掉你一个完整下午。Thunderbit 大概两分钟就能搞定。这不是在贬低 n8n,只是它更适合别的任务。
设好就忘:用 Cron 触发的 n8n 网页爬虫流水线
一次性抓取当然有用,但 n8n 网页爬虫真正厉害的地方,是可以做成周期性的自动采集。令人意外的是,几乎没有 n8n 爬虫教程会讲 Schedule Trigger,尽管它其实是社区里最常被要求的功能之一。
搭建一个每日价格监控流程
把 Manual Trigger 换成 Schedule Trigger 节点。你可以在 n8n UI 里直接设置(比如“每天早上 8:00”),也可以写 cron 表达式(0 8 * * *)。
完整工作流链路:
- Schedule Trigger(每天早上 8 点)
- Code 节点(生成分页 URL)
- Loop Over Items → HTTP Request → HTML → Wait(抓完所有页面)
- Code 节点(清洗数据、规范价格)
- Google Sheets(追加新行)
- IF 节点(是否有价格低于阈值?)
- Slack(如果有,发送提醒)
你还应该在旁边单独配置一个 Error Trigger 工作流,一旦执行失败就发 Slack 通知。不然的话,等选择器失效时(它们迟早会失效),你可能要三周后看到报表空了才知道出问题。
有两个不太明显但非常重要的要求:
- n8n 必须 24/7 运行。 如果你把自托管部署在笔记本上,合上盖子之后定时器就不会触发。请使用服务器、Docker,或者 n8n Cloud。
- 每次编辑工作流后,都要先关闭再重新开启。 n8n Cloud 有一个,就是编辑后调度器会悄悄失效,而且不会报错。
搭建一个每周线索提取流程
模式一样,只是目标不同:Schedule Trigger(每周一上午 9 点)→ HTTP Request(企业目录)→ HTML(提取名称、电话、邮箱)→ Code(去重、清洗格式)→ 推送到 Airtable 或 HubSpot。

这里最大的隐性成本,其实是维护。目录网站一旦改版,你的 CSS 选择器就会失效,工作流也可能静默失败。HasData 估算,基于选择器的管道,每年应该预留初始构建时间的 用于持续维护。当你要维护大约 20 个站点时,开销就会非常明显。
Thunderbit 的定时爬虫:无需代码的替代方案
Thunderbit 的 Scheduled Scraper 允许你用自然语言描述频率(例如“每周一上午 9 点”),输入 URL,然后点击“Schedule”。它在云端运行——无需主机、无需 cron 表达式,也不会悄悄失效。
| 维度 | n8n 定时工作流 | Thunderbit 定时爬虫 | |---|---|---|---| | 定时设置 | cron 表达式或 n8n 调度界面 | 自然语言描述即可 | | 数据清洗 | 需要手动 Code 节点 | AI 自动清洗/标注/翻译 | | 导出目标 | 需要集成节点 | Google Sheets、Airtable、Notion、Excel(免费) | | 托管要求 | 自托管或 n8n Cloud | 不需要——在云端运行 | | 网站改版后的维护 | 选择器失效,需要手动修复 | AI 每次都会重新读取页面 |
最后一行最关键。论坛用户说得很直白:“大多数方案在网站改版之前都没问题。” Thunderbit 的 AI 方案避免了这个痛点,因为它不依赖固定的 CSS 选择器。
当你的 n8n 网页爬虫被封时:反爬排查指南
被封是继分页之后的第二大痛点。传统建议——“加个 User-Agent 请求头”——就像拿纱窗去挡飓风,作用有限。
根据 Imperva 2025 Bad Bot 报告,,其中 是恶意流量。Cloudflare、Akamai、DataDome、HUMAN、PerimeterX 等反爬厂商因此引入了 TLS 指纹识别、JavaScript 验证和行为分析。n8n 的 HTTP Request 节点底层使用 Axios 库,会生成一种与真实浏览器不同、而且很容易识别的 TLS 指纹。单纯改 User-Agent 没用——在 HTTP 请求头被读取之前,JA3/JA4 指纹就已经把你暴露了。
反爬处理决策树
下面是一个更系统的排查框架,而不是简单地“加个 User-Agent”:
请求被拦?
- 403 Forbidden → 添加 User-Agent + Accept 请求头(见上面的第 2 步)→ 还是被拦?
- 是 → 加住宅代理轮换 → 还是被拦?
- 是 → 改用抓取 API(ScrapeNinja、Firecrawl、ZenRows)或无头浏览器社区节点
- 否 → 继续
- 否 → 继续
- 是 → 加住宅代理轮换 → 还是被拦?
- 出现验证码 → 使用带验证码解决能力的抓取 API(例如 )
- 返回空内容(JS 渲染页面) → 使用无头浏览器社区节点,或者开启 JS 渲染的抓取 API
- 被限流(429 错误) → 在 HTTP Request 节点里启用批量处理,把批次间隔设为 2–5 秒,并降低并发数
还有一个坑:n8n 有一个,会导致 HTTP Request 节点无法通过 HTTP 代理正确转发 HTTPS。即使同一容器里的 curl 正常,Axios 也可能在 TLS 握手时失败。如果你用了代理,却遇到莫名其妙的连接错误,这很可能就是原因。
为什么 Thunderbit 能绕开大多数反爬问题
Thunderbit 提供两种抓取模式:
- 浏览器抓取:在你真实的 Chrome 浏览器中运行,自动继承你的会话 Cookie、登录状态和浏览器指纹。这样可以绕过大多数会拦截服务器请求的反爬措施,因为这个请求本身就是一个真实浏览器发出的。
- 云端抓取:对于公开网站,Thunderbit 的云端模式可以大规模处理反爬问题——。
如果你花在和 Cloudflare 斗法上的时间,比分析数据还多,那这就是一个更实际的替代方案。
诚实判断:n8n 网页爬虫什么时候好用,什么时候该换工具
n8n 是个很强的平台。但它并不适合所有抓取任务,而大多数竞品文章都不会老实说这一点。论坛里用户甚至会直接问:“用 n8n 搭一个网页爬虫难不难?” 以及 “哪个抓取工具和 n8n 搭配最好?”
n8n 网页爬虫的优势场景
- 多步骤工作流,把抓取和后续处理结合起来——CRM 更新、Slack 提醒、AI 分析、写入数据库。这是 n8n 的核心优势。
- 抓取只是整条自动化链中的一个节点——抓取 → 补充信息 → 过滤 → 推送到 CRM。
- 技术用户,能够接受 CSS 选择器和基于节点的逻辑。
- 在抓取和存储之间需要自定义数据转换 的场景。
n8n 网页爬虫最让人头疼的场景
- 非技术用户,只是想尽快拿到数据。节点配置、CSS 选择器查找和调试循环,对业务用户来说门槛很高。
- 反爬很强的网站。 代理和 API 插件会增加成本和复杂度。
- 网站改版后的维护。 CSS 选择器失效后,工作流可能静默失败。
- 批量抓取很多不同类型的网站。 每个站都要单独配置选择器。
- 子页面补充信息。 需要在 n8n 里额外搭建子工作流。
并排对比:n8n vs. Thunderbit vs. Python 脚本
| 因素 | n8n 自建爬虫 | Thunderbit | Python 脚本 |
|---|---|---|---|
| 需要的技术能力 | 中级(节点 + CSS 选择器) | 不需要(AI 自动建议字段) | 高(编程) |
| 新站点搭建时间 | 30–90 分钟 | 约 2 分钟 | 1–4 小时 |
| 反爬处理 | 手动(请求头、代理、API) | 内置(浏览器/云端模式) | 手动(库) |
| 网站变化后的维护 | 手动更新选择器 | 几乎不用——AI 自动适应 | 手动改代码 |
| 多步骤工作流支持 | 非常强(核心优势) | 可导出到 Sheets/Airtable/Notion | 需要自定义代码 |
| 大规模成本 | n8n 托管 + 代理/API 成本 | 按点数计费(每行约 1 点) | 服务器 + 代理成本 |
| 子页面补充 | 手动——需要单独做子工作流 | 一键抓取子页面 | 需要自定义脚本 |
结论很简单:当抓取只是复杂多步骤自动化链中的一环时,用 n8n。 当你只想快速拿数据、不想搭工作流时,用 Thunderbit。 当你需要最高级别控制、而且有开发资源时,用 Python。它们不是竞争关系,而是互补关系。

你可以直接照搬的真实 n8n 网页爬虫工作流
论坛里总有人问:“有人把这些串成多步骤工作流了吗?” 下面给你三个具体方案——都是你今天就能搭出来的真实节点序列。
工作流 1:电商竞品价格监控
目标: 每天跟踪竞品价格,并在降价时接收提醒。
节点链路: Schedule Trigger(每天早上 8 点)→ Code(生成分页 URL)→ Loop Over Items → HTTP Request → HTML(提取产品名、价格、库存)→ Wait(2 秒)→(回到循环)→ Code(清洗数据、规范价格)→ Google Sheets(追加行)→ IF(价格低于阈值?)→ Slack(发送提醒)
复杂度: 8–10 个节点,每个竞品站点搭建需要 30–60 分钟。
Thunderbit 快捷方案: Thunderbit 的 Scheduled Scraper + 可以在几分钟内实现类似效果,并且可以免费导出到 Google Sheets。
工作流 2:销售线索生成流程
目标: 每周抓取一个企业名录,清洗并分类线索,然后推送到 CRM。
节点链路: Schedule Trigger(每周一上午 9 点)→ HTTP Request(名录列表页)→ HTML(提取名称、电话、邮箱、地址)→ Code(去重、清洗格式)→ OpenAI/Gemini 节点(按行业分类)→ HubSpot 节点(创建联系人)
注意: n8n 自带 ,做 CRM 推送很方便。但抓取和清洗步骤仍然需要你手动写 CSS 选择器。
Thunderbit 快捷方案: Thunderbit 免费的 和电话号码提取器,只需 1 次点击就能拿到联系信息,不需要搭工作流。它的 AI 标注功能还能在提取时直接给线索分类。对于不需要完整自动化链的用户,完全可以跳过 n8n 搭建。
工作流 3:房产新房源追踪
目标: 每周在 Zillow 或 Realtor.com 上发现新房源,并发送摘要邮件。
节点链路: Schedule Trigger(每周)→ HTTP Request(房源列表页)→ HTML(提取地址、价格、卧室数、链接)→ Code(清洗数据)→ Google Sheets(追加)→ Code(与上周数据对比,标记新房源)→ IF(发现新房源?)→ Gmail/SendGrid(发送摘要)
注意: Thunderbit 为 Zillow 这类网站提供了——不需要 CSS 选择器。需要完整自动化链(抓取 → 对比 → 提醒)的用户更适合 n8n;只想拿房源数据的用户,用 Thunderbit 更省事。
如果你还想找更多工作流灵感,n8n 的社区库里还有 、,以及 。
让你的 n8n 网页爬虫稳定运行的小技巧
生产级爬虫是“20% 搭建,80% 维护”。
使用批量处理和延迟来避免限流
在 HTTP Request 节点中启用 batching,并把每批之间的等待时间设为 1–3 秒。并发请求是最快被封 IP 的方式。现在多一点耐心,后面能少很多痛苦。
监控工作流执行,防止静默失败
使用 n8n 的 Executions 选项卡检查失败记录。抓取结果也可能因为网站改版而悄悄变空——工作流表面上“成功”了,但你的表格全是空白。
建议再配一个 Error Trigger 工作流,只要执行失败就发 Slack 或邮件提醒。生产流水线里,这一步不能省。
把 CSS 选择器放到外部,方便更新
把 CSS 选择器保存在 Google Sheet 或 n8n 环境变量里,这样你就不需要每次改工作流本身。网站结构一变,你只要改一个地方就行。
知道什么时候该换成 AI 爬虫
如果你发现自己总是在更新 CSS 选择器、和反爬机制较劲,或者花在维护爬虫上的时间比使用数据还多,那么可以考虑像 这样的 AI 工具。它每次都会重新读取页面,并自动适应变化。 其实很适合很多团队:Thunderbit 负责脆弱的提取层(也就是网站每次改一个 <div> 就容易坏的那部分),导出到 Google Sheets 或 Airtable;然后 n8n 再通过原生的 Sheets/Airtable 触发器接手后续编排——CRM 更新、提醒、条件分支、多系统分发。
收尾:搭建真正适合你团队的流程
当网页爬虫只是更大自动化流程中的一步时,n8n 非常强大。但它需要技术配置、持续维护,以及对分页、反爬和定时设置的耐心。本指南已经带你完整走过了整个流程:你的第一个工作流、分页(每篇教程都会跳过的部分)、定时任务、反爬排查、n8n 适用性的诚实判断,以及可以直接照搬的真实工作流。
我通常会这样理解它:
- 用 n8n,当抓取只是复杂多步骤自动化链中的一环——比如 CRM 更新、Slack 提醒、AI 补充信息、条件路由。
- 用 ,当你只想快速拿到数据,而不想搭工作流——AI 会帮你自动建议字段、处理分页、应对反爬并完成导出,只需 2 次点击。
- 用 Python,当你需要最高级别的控制,并且手上有开发资源。
说实话,对很多团队来说,最好的方案其实是两者结合:Thunderbit 负责提取,n8n 负责编排。如果你想看看 AI 网页爬虫和你的 n8n 工作流到底差在哪, 可以让你先小规模试用,而 几秒钟就能装好。想看视频演示和工作流灵感,可以去看看 。
常见问题
n8n 可以抓取 JavaScript 很重的网站吗?
单靠内置的 HTTP Request 节点不行。HTTP Request 节点只能获取原始 HTML,无法执行 JavaScript。对于 JS 渲染页面,你需要像 这样的社区节点,或者接入支持服务器端渲染 JavaScript 的抓取 API(如 ScrapeNinja、Firecrawl)。Thunderbit 在浏览器抓取和云端抓取模式下都能原生处理这类网站。
n8n 网页爬虫是免费的吗?
n8n 的自托管版本是免费且开源的。n8n Cloud 以前有免费方案,但截至 2026 年 4 月,它只提供 14 天试用;之后套餐从每月 24 美元起,包含 2,500 次执行。抓取受保护网站时,你也可能需要付费代理服务(住宅代理约每 GB 5–15 美元)或抓取 API(按量每月 49–200 美元以上)。
n8n 网页爬虫和 Thunderbit 怎么比?
如果你做的是多步骤自动化,而抓取只是其中一环(比如抓取 → 补充信息 → 过滤 → 推送到 CRM → Slack 提醒),n8n 更合适。Thunderbit 更适合快速、无代码的数据提取,具备 AI 字段识别、自动分页和站点变化后的零维护优势。很多团队会两者一起用——Thunderbit 负责提取,n8n 负责编排。
用 n8n 可以抓取需要登录的网站吗?
可以,但你需要在 HTTP Request 节点里配置 Cookie 或会话令牌,这种方式维护起来比较麻烦。Thunderbit 的浏览器抓取模式会自动继承用户已登录的 Chrome 会话——只要你在浏览器里能看到,Thunderbit 就能抓。
如果我的 n8n 爬虫突然不再返回数据,我该怎么办?
先去 n8n 的 Executions 选项卡检查错误。最常见的原因是网站改版,导致你的 CSS 选择器失效——工作流表面上“成功”,但返回的是空字段。用 Chrome 的 Inspect 工具重新验证选择器,在工作流里(或者你外部保存的选择器表里)更新它们,然后重新测试。如果你遇到的是反爬封禁,按照本文中的排查决策树处理即可。若想长期稳定,建议考虑像 Thunderbit 这样的 AI 爬虫,它能自动适应页面变化。
了解更多