简介
在今天以数据为驱动的环境中,组织需要高效的方式来提取、处理和分析网络内容。传统的网络爬虫面临诸多挑战:反机器人保护、复杂的JavaScript渲染,以及需要持续维护。此外,理解非结构化网络数据需要复杂的处理。
本指南展示了如何使用n8n工作流自动化、Scrapeless网络爬虫、Claude AI进行智能提取,以及Qdrant向量数据库进行语义存储,来构建一个完整的网络数据管道。无论您是在构建知识库、进行市场调研,还是开发AI助手,这个工作流都提供了强大的基础。
您将构建什么
我们的n8n工作流结合了几种尖端技术:
- Scrapeless Web Unlocker:具备JavaScript渲染的先进网络爬虫
- Claude 3.7 Sonnet:基于AI的数据提取和结构化
- Ollama Embeddings:本地向量嵌入生成
- Qdrant向量数据库:语义存储和检索
- 通知系统:通过Webhook进行实时监控
这个端到端的管道将杂乱的网络数据转化为结构化的、向量化的信息,随时可用于语义搜索和AI应用。
安装和设置
安装n8n
n8n需要Node.js v18、v20或v22。如果您遇到版本兼容性问题:
# 检查您的Node.js版本
node -v
# 如果您有一个更新的、不受支持的版本(例如v23+),请安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 或者对于Windows,使用NVM for Windows安装程序
# 安装一个兼容的Node.js版本
nvm install 20
# 使用已安装的版本
nvm use 20
# 全局安装n8n
npm install n8n -g
# 运行n8n
n8n
您的n8n实例现在应该可以在http://localhost:5678访问。
设置Claude API
- 访问Anthropic Console并创建一个账号
- 导航到API密钥部分
- 点击“创建密钥”,并设置适当的权限
- 复制您的API密钥以供在n8n工作流中使用(在AI数据检查器、Claude数据提取器和Claude AI代理中)

设置Scrapeless
- 访问Scrapeless并创建一个账号
- 导航到仪表盘中的通用爬虫API部分 https://app.scrapeless.com/exemple/overview

- 复制您的令牌以供在n8n工作流中使用

您可以使用以下curl命令自定义Scrapeless网络爬虫请求,并将其直接导入n8n中的HTTP请求节点:
curl -X POST "https://api.scrapeless.com/api/v1/unlocker/request" \
-H "Content-Type: application/json" \
-H "x-api-token: scrapeless_api_key" \
-d '{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY"
},
"input": {
"url": "https://www.scrapeless.com",
"method": "GET",
"redirect": true,
"js_render": true,
"js_instructions": [{"wait":100}],
"block": {
"resources": ["image","font","script"],
"urls": ["https://example.com"]
}
}
}'

使用Docker安装Qdrant
# 拉取Qdrant镜像
docker pull qdrant/qdrant
# 以数据持久性运行Qdrant容器
docker run -d \
--name qdrant-server \
-p 6333:6333 \
-p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage \
qdrant/qdrant
验证Qdrant是否正在运行:
curl http://localhost:6333/healthz
安装Ollama
macOS:
brew install ollama
Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows:从Ollama的网站下载并安装。
启动Ollama服务器:
ollama serve
安装所需的嵌入模型:
ollama pull all-minilm
验证模型安装:
ollama list
设置n8n工作流
工作流概述
我们的工作流由以下关键组件组成:
- 手动/定时触发器:开始工作流
- 集合检查:验证Qdrant集合是否存在
- URL配置:设置目标URL和参数
- Scrapeless网络请求:提取HTML内容
- Claude数据提取:处理和结构化数据
- Ollama 嵌入:生成向量嵌入
- Qdrant 存储:保存向量和元数据
- 通知:通过 webhook 发送状态更新
第 1 步:配置工作流触发器和集合检查
首先添加一个手动触发节点,然后添加一个 HTTP 请求节点以检查你的 Qdrant 集合是否存在。你可以在这一步自定义集合名称——如果集合不存在,工作流将自动创建该集合。
重要提示: 如果你想使用与默认的“hacker-news”不同的集合名称,请确保在所有引用 Qdrant 的节点中一致地更改它。
第 2 步:配置 Scrapeless 网络请求
添加一个 HTTP 请求节点,用于 Scrapeless 网络爬取。根据之前提供的 curl 命令配置该节点,将 YOUR_API_TOKEN 替换为你实际的 Scrapeless API 令牌。
你可以在 Scrapeless Web Unlocker 中配置更高级的爬取参数。
第 3 步:Claude 数据提取
添加一个节点,使用 Claude 处理 HTML 内容。你需要提供你的 Claude API 密钥进行身份验证。Claude 提取器分析 HTML 内容并以 JSON 格式返回结构化数据。
第 4 步:格式化 Claude 输出
该节点获取 Claude 的响应,并通过提取相关信息并适当地格式化它,为向量化做准备。
第 5 步:Ollama 嵌入生成
该节点将结构化文本发送到 Ollama 进行嵌入生成。确保你的 Ollama 服务器正在运行,并且已安装 all-minilm 模型。
第 6 步:Qdrant 向量存储
该节点将生成的嵌入存储在你的 Qdrant 集合中,包括相关元数据。
第 7 步:通知系统
最后一个节点通过你配置的 webhook 发送工作流执行状态的通知。
疑难解答常见问题
n8n Node.js 版本问题
如果你看到错误信息:
你的 Node.js 版本 X 当前不受 n8n 支持。
请使用 Node.js v18.17.0(推荐)、v20 或 v22!
修复方法:安装 nvm 并使用兼容的 Node.js 版本,如设置部分所述。
Scrapeless API 连接问题
- 验证你的 API 令牌是否正确
- 检查是否触及 API 速率限制
- 确保 URL 格式正确
Ollama 嵌入错误
常见错误:connect ECONNREFUSED ::1:11434
修复方法:
- 确保 Ollama 正在运行:ollama serve
- 验证模型是否已安装:ollama pull all-minilm
- 使用直接 IP (127.0.0.1) 而非 localhost
- 检查是否有其他进程占用 11434 端口
高级使用场景
批量处理多个 URL
要在一次工作流执行中处理多个 URL:
- 使用“按批次拆分”节点并行处理 URL
- 为每个批次配置适当的错误处理
- 使用“合并”节点整合结果
定期数据更新
使用定期更新保持向量数据库的最新:
- 用计划节点替换手动触发
- 配置更新频率(每天、每周等)
- 使用“如果”节点仅处理新内容或更改的内容
自定义提取模板
根据不同内容类型调整 Claude 的提取:
- 为新闻文章、产品页面、文档等创建特定的提示
- 使用“切换”节点选择适当的提示
- 将提取模板存储为环境变量
结论
这个 n8n 工作流创建了一个强大的数据管道,结合了 Scrapeless 网络爬取、Claude AI 提取、向量嵌入和 Qdrant 存储的优势。通过自动化这些复杂的过程,你可以专注于使用提取的数据,而不是获得数据的技术挑战。
n8n 的模块化特性允许你通过附加处理步骤、与其他系统的集成或自定义逻辑来扩展此工作流以满足特定需求。无论你是在构建 AI 知识库、进行竞争分析还是监控网络内容,这个工作流都提供了一个坚实的基础。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。