绿联NAS n8n + Browserless 自动化爬虫部署方案

AI摘要本文介绍在绿联NAS上通过Docker Compose部署n8n工作流引擎与Browserless无头浏览器服务,实现反检测自动化爬虫。方案利用Browserless提供独立Chromium环境,配合n8n编排批量抓取流程,包括反指纹伪装、重试机制、数据存储与Excel导出,并提供完整实战步骤,解决绿联Docker无法直接构建镜像的问题。

一、绿联 NAS 前置准备

1.1 安装 Docker

打开 应用中心 → 搜索 Docker → 点击安装。安装完成后,绿联会自动在文件管理器中创建 /volume1/docker 共享文件夹。

1.2 确认路径

打开 文件管理器 → 右键 共享文件夹/docker属性 → 查看"存储位置":

  • 显示"存储空间1" → 路径为 /volume1/docker
  • 显示"存储空间2" → 路径为 /volume2/docker

下文统一以 /volume1/docker 为例,如果你的在存储空间2,请自行替换。

1.3 创建文件夹

/volume1/docker 下新建文件夹:

二、Docker Compose

2.1 为什么需要 Browserless?

n8n 官方镜像不含 Chromium,无法直接执行浏览器自动化。绿联 NAS 的 Docker 管理器不支持直接构建 Dockerfile,因此我们将浏览器服务独立为 browserless 容器,n8n 通过内部 HTTP 调用它。

2.2 编写 docker-compose.yml

/volume1/docker/n8n-scraper/ 下创建 docker-compose.yml

2.3 创建项目

image

在绿联 Docker 管理器中:

  1. 点击 创建项目
  2. 选择 docker-compose.yml 所在路径 /volume1/docker/n8n-scraper/
  3. 点击 部署

等待镜像拉取完成,两个容器状态变为"运行中"即可。

image

三、部署验证

3.1 访问 n8n 面板

浏览器打开 http://你的NASIP:5678,使用 admin / 你设置的密码登录。

3.2 测试 Browserless 连通性

在 n8n 中创建一个测试工作流:

  1. 添加 Manual Trigger 节点
  2. 添加 HTTP Request 节点,配置如下:
    • Method: POST
    • URL: http://browserless:3000/content
    • Body: {"url":"https://www.baidu.com"}

点击执行,若返回百度首页 HTML,说明浏览器服务正常。

四 创建自动化流程

image

以下以一个"批量抓取页面文档编号"的实战场景为例,演示完整流程。

4.1 输入 URL 列表

URL 列表是手动输入的,在 Manual Trigger 后接一个 Set 节点:

字段名 值(换行 URL 列表)
data URL 列表(每行一个)

值内容:每行一个 URL,例如:

 

image

然后 Set 节点 → Code 节点 → Loop Over Items。

4.2 数据分割

添加 Code 节点,选择 JavaScript,将换行文本转为标准 item 数组:

image

这样生成的数组就是url的json文本

4.3 循环执行

搜索添加 Loop Over Items(旧版叫 Split in Batches),配置如下:

参数 说明
Batch Size 1 每次只取 1 条 URL,逐条处理
Reset 关闭 保持默认即可

image

该节点有两个输出:

  • loop:每次循环执行的逻辑
  • done:所有循环完成后执行的逻辑

4.4 数据处理

前面是把url整理出来了,现在我们需要处理成HTTP Request能够执行的代码。在 loop 分支中添加 Code 节点,选择Javascript脚本。生成发送给 Browserless 的 Puppeteer 脚本:

需要注意,组装返回结果时,一定要包裹到data里面,才能在后续的HTTP Request中拿到JSON返回值。

image

4.5 执行HTTP请求

在 Code 节点后添加 HTTP Request 节点,配置如下图。发送的body信息是上一个节点的body输出。

image

  • Method: POST
  • URL: http://Localhost:3000/function
  • Body: 选择 JSON,内容引用上一个节点的 {{ $json.body }}
  • OptionsTimeout: 60000(毫秒)

4.6 其他

可以制作时间计算,用于判断当前执行到哪一步,用时多少,剩余时间多少。

数据持久化,每一次循环执行完都把数据存储到数据库内,或者输出数据到excel里面。

延时等待

五、完整工作流节点顺序参考

以上就是完整的绿联 NAS 部署 n8n + Browserless 自动化爬虫方案。

纪小年

Jing

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理