ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ScrapeGraphAI 智能网页抓取与内容提取 Piece 集成指南(Activepieces)

ScrapeGraphAI 智能网页抓取与内容提取 Piece 集成指南(Activepieces) ScrapeGraphAI 智能网页抓取与内容提取 Piece 集成指南Activepieces【免费下载链接】activepiecesAI Agents MCPs AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces导读本文围绕 Activepieces 开源仓库中的scrapegrapghai官方 Piece系统讲解如何将 ScrapeGraphAI 的 AI 网页抓取与内容提取能力接入你的自动化工作流。你将掌握 API Key 认证配置、Smart Scraper / Local Scraper / Markdownify 三大动作的参数含义与底层调用原理以及如何用输出 Schema 将非结构化网页内容转成结构化数据供下游步骤使用。一、Piece 概述AI 驱动的网页抓取与内容提取scrapegrapghai是 Activepieces 官方仓库中位于 packages/pieces/community/scrapegrapghai 的社区 Piece它封装了 ScrapeGraphAI 的云 API基础地址为https://api.scrapegraphai.com/v1将AI 抓取网页并提取信息的能力以 Activepieces 标准动作Action的形式暴露给流程构建者。从 src/index.ts 可以看到该 Piece 的完整定义export const scrapegraphai createPiece({ displayName: ScrapeGraphAI, description: AI-powered web scraping and content extraction., minimumSupportedRelease: 0.30.0, logoUrl: https://cdn.activepieces.com/pieces/scrapegraphai.jpg, categories: [PieceCategory.ARTIFICIAL_INTELLIGENCE], authors: [OsamaHaikal], auth: scrapegraphaiAuth, actions: [ smartScraper, localScraper, markdownify, createCustomApiCallAction({ baseUrl: () https://api.scrapegraphai.com/v1, auth: scrapegraphaiAuth, authMapping: async (auth) ({ SGAI-APIKEY: ${auth.secret_text}, }), }), ], triggers: [], });需要重点关注的几个设计事实动作全集Piece 内置 3 个 AI 抓取动作Smart Scraper、Local Scraper、Markdownify同时通过createCustomApiCallAction额外暴露了一个Custom API Call动作允许你对 ScrapeGraphAI API 发起任意自定义 HTTP 请求。i18n 资源文件translation.json中也包含Custom API Call、HTTP 方法、Headers、Query Parameters、Body 等字段印证了这一动作的存在。认证方式所有动作共用同一个scrapegraphaiAuth密钥认证请求时通过SGAI-APIKEY请求头注入见下文认证章节。分类与兼容该 Piece 被归类为PieceCategory.ARTIFICIAL_INTELLIGENCE人工智能类声明的最低支持版本为0.30.0即需要 Activepieces0.30.0及以上版本才能加载。无触发器triggers: []说明它只用于流程中主动发起抓取不提供监听型触发器。包信息npm 包名为activepieces/piece-scrapegrapghai当前仓库版本 0.1.7依赖activepieces/pieces-common、activepieces/pieces-framework、activepieces/core-piece-types与activepieces/core-utils见 package.json。二、认证获取并配置 ScrapeGraphAI API Key该 Piece 使用SecretText 密钥认证PieceAuth.SecretText这是整个接入过程唯一的前置条件。认证逻辑定义在 src/lib/auth.tsexport const scrapegraphaiAuth PieceAuth.SecretText({ description: markdownDescription, displayName: API Key, required: true, validate: async ({ auth }) { try { await httpClient.sendRequest({ method: HttpMethod.POST, url: https://api.scrapegraphai.com/v1/smartscraper, headers: { Content-Type: application/json, SGAI-APIKEY: auth, }, body: { user_prompt: test, website_url: https://www.example.com, }, }); return { valid: true }; } catch (e) { return { valid: false, error: Invalid API Key }; } }, });获取 API Key 的步骤访问 ScrapeGraphAI 官网并注册账号登录后进入你的控制台Dashboard在控制台中找到并复制你的 API Key。该说明同时以 Markdown 形式内嵌在认证字段的描述中markdownDescription在 Activepieces 构建器的连接配置界面中会直接展示给用户。认证的两个关键技术细节请求头格式实际请求使用SGAI-APIKEY请求头携带密钥而非常见的Authorization: Bearer。三个动作与 Custom API Call 的authMapping均使用此约定。内置校验validate函数在保存连接时会向POST https://api.scrapegraphai.com/v1/smartscraper发送一个最小测试请求user_prompt: testwebsite_url: https://www.example.com。若请求失败则校验不通过并提示Invalid API Key从而在连接建立阶段就拦截错误密钥避免流程运行到一半才发现认证失败。注意由于密钥以明文文本形式存储并用于请求头建议在 Activepieces 中妥善保管该连接不要将密钥写死在流程的普通文本字段中。三、Smart Scraper用自然语言提示词定向抓取网页Smart Scraper 是最核心的动作给定一个公开网页 URL 和一段自然语言提示词由 AI 服务端抓取页面并只提取你关心的内容。实现在 src/lib/actions/smart-scraper.ts。参数说明参数类型必填说明website_urlShortText是要抓取的网页 URLuser_promptLongText是用自然语言描述你想提取的信息例如提取所有产品名称和价格output_schemaJson否可选的输出结构定义用于将结果整理为结构化字段底层实现async run({ auth, propsValue }) { const response await httpClient.sendRequest({ method: HttpMethod.POST, url: https://api.scrapegraphai.com/v1/smartscraper, headers: { Content-Type: application/json, SGAI-APIKEY: auth.secret_text, }, body: { website_url: propsValue.website_url, user_prompt: propsValue.user_prompt, output_schema: propsValue.output_schema, }, }); return response.body; }实现上就是一次标准的 POST 调用请求体携带website_url、user_prompt与可选的output_schema响应体response.body原样返回给流程供后续步骤如写入表格、发送消息引用。适用场景动态网站AI 服务端负责渲染与内容识别适合 JavaScript 渲染的页面原 README 提到的Support for dynamic websites定向提取只需要页面中一小部分信息如商品价格、文章作者、联系方式而不是整页内容结构化输出配合output_schema将半结构化的网页内容整理成固定字段的 JSON便于下游直接使用。该动作的aiMetadata中明确标注了idempotent: true且Read-only and safe to retry即它是只读且幂等的——抓取过程不产生副作用流程失败重试是安全的。同时它指明页面由服务端从 URL 抓取如果 HTML 已在手边应使用 Local Scraper 代替帮助 Agent 或 AI 流程正确选型。四、Local Scraper直接处理手头的 HTML 内容Local Scraper 与 Smart Scraper 的差异在于输入来源它不通过 URL 抓取页面而是直接接收你已经拿到的 HTML 原始内容由 AI 从中提取信息。实现在 src/lib/actions/local-scraper.ts。参数说明参数类型必填说明website_htmlLongText是要处理的 HTML 内容上限 2MBuser_promptLongText是自然语言提取提示词output_schemaJson否可选的结构化输出定义底层实现async run({ auth, propsValue }) { const response await httpClient.sendRequest({ method: HttpMethod.POST, url: https://api.scrapegraphai.com/v1/localscraper, headers: { Content-Type: application/json, SGAI-APIKEY: auth.secret_text, }, body: { website_html: propsValue.website_html, user_prompt: propsValue.user_prompt, output_schema: propsValue.output_schema, }, }); return response.body; }适用场景与注意点HTML 已在流程中例如先用 HTTP 请求动作或文件读取动作拿到 HTML再交给 Local Scraper 提取避免二次抓取静态页面适合内容已包含在 HTML 中的静态网页原 README 提到的Static website support资源开销低由于不发起额外页面抓取适合对已获取内容做轻量提取Resource-efficient大小限制输入 HTML 不得超过 2MB超限会失败这是实现中明确标注的约束。同样地该动作被标注为idempotent: true、只读且可安全重试aiMetadata也提示已有页面 HTML 时选择此动作活 URL 请用 Smart Scraper与 README 的定位描述相互印证。五、Markdownify把网页转成干净的 MarkdownMarkdownify 用于将任意公开网页整体转换为干净、可读的 Markdown 文本适合整页转文本场景如喂给 LLM、归档为文档。实现在 src/lib/actions/markdownify.ts。参数说明参数类型必填说明website_urlShortText是要转换为 Markdown 的网页 URL底层实现async run({ auth, propsValue }) { const response await httpClient.sendRequest({ method: HttpMethod.POST, url: https://api.scrapegraphai.com/v1/markdownify, headers: { Content-Type: application/json, SGAI-APIKEY: auth.secret_text, }, body: { website_url: propsValue.website_url, }, }); return response.body; }适用场景整页内容提取当你需要页面的全部正文而非特定字段时使用原 README 中的Clean and formatted markdown output、Preserves content structureLLM 输入预处理将 HTML 转成 Markdown 后再作为上下文喂给 AI 模型比原始 HTML 更省 token、更易解析文档归档将在线文档、博客文章转成 Markdown 存档。aiMetadata明确建议需要整页文本给 LLM 或文档时用 Markdownify需要按提示词提取特定字段时用 Smart Scraper。三个动作形成清晰的分工动作输入输出典型场景Smart ScraperURL 提示词Schema结构化提取结果从动态/静态页面定向提取字段Local ScraperHTML 提示词Schema结构化提取结果对已有 HTML 内容做提取MarkdownifyURL整页 Markdown整页转文本供 LLM/文档使用六、Custom API Call直连 ScrapeGraphAI API除了三个封装好的动作Piece 还通过createCustomApiCallAction提供了一个自定义 API 调用动作。其关键配置如下src/index.tscreateCustomApiCallAction({ baseUrl: () https://api.scrapegraphai.com/v1, auth: scrapegraphaiAuth, authMapping: async (auth) ({ SGAI-APIKEY: ${auth.secret_text}, }), })这意味着你可以在构建器中自由指定路径相对https://api.scrapegraphai.com/v1、HTTP 方法、请求头、查询参数和请求体且认证头会自动注入SGAI-APIKEY: 你的密钥i18n 文件中Authorization headers are injected automatically from your connection.即描述该行为。典型用途调用 ScrapeGraphAI API 中尚未被封装成独立动作的端点微调请求体以满足特定业务参数快速验证某个 API 行为无需等待官方 Piece 更新。七、在 Activepieces 流程中组合使用实战编排基于以上实现细节下面给出一个可落地的组合思路以构建器中操作即可无需修改仓库代码场景示例监控产品页面价格并写入表格触发使用定时触发器每天运行一次Smart Scraperwebsite_url填产品页 URLuser_prompt填提取商品名称、当前价格、库存状态output_schema填入结构化定义如{product_name: string, price: number, stock: string}使输出变为固定字段的 JSON后续动作将提取结果写入 Google Sheets / Airtable / 数据库等存储动作或触发通知。场景示例抓取 HTML 后本地提取先用 HTTP 请求动作获取目标页面的 HTML注意控制在 2MB 以内Local Scraper将上一步 HTML 传入website_htmluser_prompt写提取所有链接的 URL 和锚文本将结果整理后交给下游处理。场景示例整页转文档Markdownifywebsite_url填博客文章 URL将返回的 Markdown 存入知识库、发送到邮箱或作为 AI 模型的上下文输入。三个动作的aiMetadata均标注为只读、幂等、可安全重试因此在编排时可以放心加入失败重试逻辑不必担心重复执行产生副作用。八、约束与前提必须持有 ScrapeGraphAI API Key且保存连接时会被在线校验请求示例域https://www.example.com的 smartscraper 端点API 为云端服务所有动作都依赖https://api.scrapegraphai.com/v1的可用性与网络连通性Local Scraper 输入上限 2MB超大 HTML 需要先截断或拆分需要 Activepieces 0.30.0 及以上版本minimumSupportedRelease: 0.30.0该 Piece 无触发器只能作为流程中的动作步骤使用抓取目标的网站需允许被访问公开 URL 是 Smart Scraper 与 Markdownify 的前提。参考资源Piece 入口定义packages/pieces/community/scrapegrapghai/src/index.ts认证实现packages/pieces/community/scrapegrapghai/src/lib/auth.ts三个动作源码smart-scraper.tslocal-scraper.tsmarkdownify.ts包清单packages/pieces/community/scrapegrapghai/package.json原始文档packages/pieces/community/scrapegrapghai/README.md【免费下载链接】activepiecesAI Agents MCPs AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表