ARTICLE DETAIL

资讯详情

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

Coze实战:小红书视频数据自动采集与飞书多维表同步

Coze实战:小红书视频数据自动采集与飞书多维表同步 1. 项目概述与核心价值说实话看到这个项目标题的第一眼我就知道这是个典型的“数据自动化沉淀”需求。做内容运营或者短视频分析的朋友应该都有过这种经历刷小红书刷到一堆爆款视频想收集起来做选题分析、竞品拆解或者内容灵感库结果只能手动复制链接、粘贴到表格里再一个个点进去看数据。一天两天还行时间一长效率低不说还容易漏掉关键信息。这个项目的本质是用 Coze扣子平台搭建一条自动化流水线把“发现爆款视频”到“数据入表”这中间所有重复劳动全部自动化。具体来说就是三步识别小红书视频链接用网页抓取能力提取视频信息和数据最后通过飞书多维表的 API 接口把结构化数据写入表格。为什么选 Coze 而不是自己写爬虫答案很简单Coze 把最难的部分——网页解析、数据提取、第三方应用对接——全部封装成了可视化节点你只需要像搭积木一样把这些节点串起来。对于非程序员出身的内容运营和数据分析师来说这是目前门槛最低的自动化方案。对于有编程基础的人来说Coze 也支持自定义代码和插件扩展不会觉得束手束脚。适合谁来参考这篇文章三类人做小红书账号运营或短视频投放分析的朋友需要批量追踪竞品爆款数据正在学习 AI 智能体Agent落地的开发者想找一个真实的业务场景练手飞书的重度用户希望把网络数据自动同步到多维表减轻手工录入的负担。这篇文章会从整体设计思路讲起拆解每一步的技术选型逻辑最后给出一个可以直接照抄的搭建方案。项目最终能达到的效果是你把一个小红书视频链接丢给智能体几分钟后飞书多维表里就多了一条包含标题、作者、点赞数、评论数、视频链接等结构的记录全程无需手工干预。2. 核心流程拆解与技术选型2.1 智能体Agent的工作逻辑先搞清楚一个基本概念AI 智能体在这里扮演什么角色它不是简单地执行一条指令而是像一个“数字员工”一样理解你的需求自主调用工具完成一系列操作。Coze 底层的 Agent 架构基于 LLM大语言模型做推理决策。你给它一个任务比如“抓取这个视频的信息”它会先拆解任务需要解析链接、需要访问页面内容、需要提取关键字段、需要调用飞书接口写入数据。然后它会按照预设的工作流Workflow逐个执行。这就是所谓的“llm 智能体自主容错控制”的工程实践——让模型在不确定的环境中通过工具调用和结果反馈来自动调整下一步动作。用一句话概括Agent 是大脑工作流是手脚插件是工具多维表是仓库。四者缺一不可。2.2 为什么小红书数据抓取有难度小红书的页面结构和绝大多数内容平台一样是 JavaScript 动态渲染的。你直接用普通的 HTTP 请求去拿页面源码拿到的是一堆 JS 代码而不是实际的视频信息。真正的数据是页面加载后通过 XHR 请求从后端接口获取的。这就给数据采集增加了不小的难度。Coze 解决这个问题的方案是内置了渲染引擎可以模拟真实浏览器的行为去加载页面等待数据渲染完成后再提取内容。这背后涉及的技术点是headless browser 的页面渲染、DOM 节点的智能定位、动态内容加载的超时控制。作为使用者你不需要关心这些细节但理解了这层原理你就明白为什么“网页抓取插件”是 Coze 工作流里的核心节点。另一个难点是小红书的链接多为短链形式比如 xhslink.com 开头的链接需要先做跳转解析才能拿到真正的视频页面 URL。在 Coze 里这一步可以通过工作流中的代码节点或内置的 URL 解析能力来处理。2.3 飞书多维表作为数据落点的原因飞书多维表本质上是一个轻量级的在线数据库既有表格的直观性又支持 API 操作、自动化规则、视图筛选等高级功能。选择它作为数据落点的原因很实际飞书在中小团队和互联网公司里的普及率极高多维表是和团队协作无缝衔接的多维表支持通过 API 批量写入非常适合自动化场景数据写入后可以直接看板化展示做数据分析不需要额外处理。作为对比常见的其他数据落点包括Google SheetsAPI 免费但国内访问不稳定、Airtable功能强大但中文生态一般、数据库对非技术用户不友好。飞书多维表在这些选项里是综合成本最低、可维护性最强、团队协作最顺畅的方案。3. 核心环节详解从链接解析到数据入表3.1 链接解析与真实地址还原这一步是整个流程的起点也是一切的基础。你在小红书 App 里分享视频时复制出来的是短链类似https://xhsurl.cn/o/xxxxx这种格式。这种短链经过一次 302 跳转后会指向带有xsec_token参数的真实视频页面。在这里补充一个实操细节xsec_token 是小红书今年加上的访问控制参数没有这个 token 的请求会被拒绝访问页面内容。Coze 通过模拟分享链接的访问路径可以拿到带完整参数的跳转地址从而绕过这一层限制。工作流里我用的是网页抓取插件中的“获取网页详情”节点配置方式如下输入字段目标 URL就是用户传入的分享链接请求方式GET等待时间设置建议设置为 5-8 秒确保页面动态内容加载完成输出字段页面标题、页面 URL、页面描述、核心文本内容。在 Coze 中调试这个节点时有一个很容易被忽略的问题短链在跳转过程中会经历多次重定向插件默认只跟随第一次重定向可能会导致拿到的页面不是最终页面。我的解决办法是在代码节点里写一个递归解析函数循环获取 Location 响应头直到拿到最终 URL。这段逻辑我放在后面“环境准备与配置”部分的代码示例中可以直接复制使用。3.2 视频信息提取与字段映射拿到页面内容之后需要从一大段 HTML 和 JSON 混合的数据中提取出我们真正关心的字段。对于一个小红书爆款视频我们通常关注以下信息维度字段对应含义数据用途video_title视频文案标题选题分析、标题改写author_name博主名称竞品账号追踪、达人筛选like_count点赞数量爆款程度判断comment_count评论数量互动率计算collect_count收藏数量内容价值判断share_count分享数量传播力评估video_url视频原地址二次创作、素材存档publish_time发布时间发布时间规律分析提取方式有两种第一种是使用 Coze 插件市场里的“网页文本解析”类插件插件会自动识别页面中的 meta 标签和结构化数据。这种方式简单快捷适用于页面结构标准的情况。第二种是在代码节点中用正则表达式提取。小红书 API 返回的 JSON 数据里通常包含{key:likeCount,value:1234}这类格式的数据。我自己在实践过程中发现用正则配合 JSON 解析提取成功率比纯插件要高尤其是当页面结构更新时正则只要匹配核心模式就不会失效。字段提取之后需要做数据清洗。常见的坑点赞数显示为“1.2万”这种中文简写格式需要转换成数字 12000 再入表否则后面做数据分析时无法参与计算。我在工作流里加了一个代码节点专门处理这个问题把“万”转换为乘 10000。3.3 飞书多维表的 API 对接与写入策略飞书开放平台提供了多维表Bitable的完整 API 接口Coze 云端市场里有封装好的飞书节点不用自己写鉴权代码。配置起来需要三个关键信息App ID、App Secret在飞书开放平台创建应用后获取以及多维表的 Table ID在表格 URL 里可以看到。在 Coze 工作流中配置“写入飞书多维表”节点时有一个容易忽略的地方需要先在 Coze 的“账户连接”中授权飞书账号。授权完成后 Coze 才能代表你去调用飞书 API。这个授权是 OAuth 2.0 流程Coze 已经封装好了你只需要一键点击授权即可。写入策略这里要说一下。大多数人的需求是“实时写入”——抓到一个就同步进去。但在实际运营场景中更建议在工作流里加一个去重判断。因为同一篇笔记可能被重复提交如果没有去重多维表里会出现大量重复记录后续做数据分析时还要额外清洗。我的方案是在写入之前先查询多维表里是否已经存在相同 video_url 的记录。如果有则跳过写入如果没有才调用新增记录接口。这样不仅保证了数据的干净也减少了 API 的调用次数避免触发飞书接口频率限制默认限制是每秒 10 次写入超过会被限流。3.4 工作流触发方式的选择自动化流程做完了要考虑怎么触发它。Coze 支持多种触发方式手动触发在 Coze 对话框里发一条消息适合零散抓取定时触发Cron每天固定时间抓取指定账号或指定话题的爆款视频适合持续监控场景飞书消息触发器在飞书群里 机器人并发送链接机器人自动抓取并写入表格。这个适合团队协作场景。我个人首推第三种方式。原因很直接它是“被动响应型”的团队里任何成员在小红书上看到好内容直接把链接发到群里机器人自动完成后续所有动作。这样就把个人工具变成了团队共享工具效率提升是几何级的。4. 实战搭建环境准备与配置详解4.1 账号与权限准备开始搭建之前先把必要的账号和权限准备齐全。如果你是飞书管理员这一步很轻松如果不是可能需要先找管理员开通权限。一个 Coze扣子账号推荐用手机号注册国内版即可地址是 www.coze.cn一个飞书账号并且有权限创建多维表在飞书开放平台open.feishu.cn创建一个企业自建应用拿到 App ID 和 App Secret。这里注意创建应用时权限管理里要开通“多维表读写”权限否则后续 API 调用会报权限不足创建一个空的多维表字段结构先按照上文表格中列出的字段建好。字段类型设置为标题文本、作者文本、点赞数数字、评论数数字、收藏数数字、分享数数字、视频链接URL、发布时间日期。有个细节值得提一下在 Coze 的“账户连接”页面点击飞书产品后的“授权”按钮时一定要用和飞书开放平台一致的账号登录。否则会出现 Coze 授权的是个人飞书身份而 API 调用用的是企业应用身份导致权限无法匹配、写入失败的情况。这个坑我在最初调试时踩过花了不少时间排查。4.2 工作流节点编排Coze 工作流的设计逻辑是“一个节点输出下一个节点输入”。我搭建的完整工作流从上到下依次是开始节点接收用户输入的链接文本代码节点短链解析递归获取跳转后的最终 URL网页抓取节点获取最终 URL 的页面详情代码节点字段提取从页面内容中提取信息并清洗条件判断节点判断多维表中是否已有相同 video_url飞书写入节点新增一条记录结束节点返回写入结果。整个流程看起来简单但在 Coze 里有一个关键的配置点节点之间的数据通过变量传递。例如步骤 2 的输出变量final_url要在步骤 3 的输入参数中引用。点击输入框时右侧会弹出“插入变量”的面板选择对应的上游输出即可。很多人第一次用 Coze 时会卡在这一步找不到变量插入入口实际上就在输入框中打{{两个大括号就会自动触发变量选择器。4.3 关键代码片段与解析下面是短链解析和字段提取的代码实现这段代码是在 Coze 的“代码节点”中运行的环境是 Node.js。// 短链解析递归获取最终URL async function getFinalUrl(url) { const MAX_REDIRECTS 5; let currentUrl url; for (let i 0; i MAX_REDIRECTS; i) { const res await fetch(currentUrl, { method: GET, redirect: manual, // 不要自动跟随跳转手动处理 headers: { User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X), Accept: text/html,application/xhtmlxml } }); if (res.status 300 res.status 400) { const location res.headers.get(location); if (!location) { return { finalUrl: currentUrl, success: true }; } // 处理相对路径跳转 currentUrl new URL(location, currentUrl).toString(); } else { return { finalUrl: currentUrl, success: true }; } } return { finalUrl: currentUrl, success: false, error: Redirect limit exceeded }; }字段提取这块我推荐一个更稳妥的方案优先从页面的window.__INITIAL_STATE__全局对象中提取数据。小红书页面会在渲染时把完整的视频信息挂载到这个对象上。在 Node.js 代码节点中可以用正则把这个 JSON 数据段取出来再用 JSON.parse 转成对象按 key 读取对应字段。const html context.htmlContent; const match html.match(/window\.__INITIAL_STATE__\s*\s*({.*?})\/script/s); let videoData {}; if (match) { const initialState JSON.parse(match[1]); // 获取视频笔记信息 const noteData initialState.note?.noteData?.note ?? {}; videoData.title noteData.title; videoData.author noteData.user?.nickname; videoData.likeCount noteData.interactInfo?.likedCount || 0; videoData.commentCount noteData.interactInfo?.commentCount || 0; videoData.collectCount noteData.interactInfo?.collectedCount || 0; videoData.shareCount noteData.interactInfo?.shareCount || 0; }这个思路的优点是只要__INITIAL_STATE__对象结构不变提取逻辑就稳定有效不受页面 DOM 结构调整的影响。4.4 飞书多维表的写入格式在 Coze 的飞书节点中不需要手动拼 JSON 请求体界面化的表单会自动完成。你只需要在节点配置界面里选择目标表格然后映射字段。有个容易踩坑的细节数字字段的类型问题。飞书多维表的数字类型字段要求传入的数字必须是 number不能是字符串。如果代码节点提取出来的是字符串“1234”写入后飞书会报格式错误。解决方法是在发送之前强制转换Number(value)。另外一个常见问题如果某个字段提取不到值比如视频没有分享数不要传空字符串直接传 0 或 null。飞书的多维表对于空字符串的处理比较严格传了空字符串会提示“字段类型不匹配”。5. 常见问题与排查技巧实录5.1 短链解析被卡住拿不到最终 URL表现网页抓取节点返回的数据为空或者报“页面加载失败”。排查思路先在浏览器里手动访问这个短链确认链接本身是有效的。然后检查工作流中的 User-Agent 头部设置小红书的反爬机制对异常 UA 的请求会直接返回验证码页面。解决办法在代码节点的 fetch 请求中把 User-Agent 设置为真实 iPhone 或 Windows 浏览器的 UA。如果还是不行就加上 Cookie 头信息用从浏览器里复制出来的 Cookie 模拟真实用户。5.2 点赞数显示为“1.2万”无法参与计算表现表格里的点赞数字段显示的是文本格式排序和计算时结果不对。原因小红书接口返回的数据中已点赞数可能做了格式化处理。解决办法在字段提取代码中加入一个统一处理函数function convertToNumber(str) { if (typeof str number) return str; if (typeof str ! string) return 0; if (str.includes(万)) { return Math.round(parseFloat(str.replace(万, )) * 10000); } return parseInt(str, 10) || 0; }5.3 飞书写入时报“鉴权失败”错误表现Coze 工作流执行到飞书节点时返回 401 错误。原因及解决办法按照这几步依次排查。检查飞书开放平台的应用是否已发布未发布的应用只有创建者本人可见Coze 调用时会找不到应用检查应用的权限范围是否包含多维表权限重新发布应用后生效检查 Coze 的账户连接中授权的是否是飞书企业账号个人账号没有足够的 API 权限最后才考虑换一个键——看看是不是存在新旧版本 App ID 混用的情况。5.4 页面结构更新导致提取失败小红书前端代码升级频率比较高这确实是无解的现实问题。我的经验是代码节点里不要用过于具体的正则来匹配页面数据尽量用语义化的标签定位方式。此外在 Coze 工作流中做一个“提取失败”的分支处理当发现关键字段都为空时直接把原始 HTML 存到多维表的一个备用字段中后续再由人工处理或调整解析逻辑。这样做的好处是自动化流程不会被中断最坏情况也就是数据需要人工补救。5.5 触发后工作流不执行表现在飞书群里 机器人发送链接机器人没有响应。排查步骤确认 Coze 工作流已经发布右上角“发布”按钮未发布的工作流是无法被外部调用的确认机器人的触发条件中“消息触发”模式被正确启用并且工作流已被绑定到该机器人上确认机器人已被拉入飞书群检查 Coze 控制台的运行日志查看是否有请求到达。这五类问题基本涵盖了 90% 的搭建失败场景。除了它们还有一个独门排查技巧想分享给你在 Coze 控制台的“运行”页面可以查看每一步节点的输入输出数据详情。排查问题时从第一个节点开始逐级查看比对哪个节点的输入输出不符合预期基本就能定位到根源。这个功能被很多人忽略了但它其实是 Coze 最强大的调试工具。就像程序员调试代码时用 console.log 逐步打印变量一样节点数据的输入输出就是你的 console.log。6. 实际效果与扩展思考6.1 这套方案的实际运行效果我在自己的账号上跑了这套工作流一个月每天通过定时任务抓取三个竞品账号的更新视频累计抓了 200 多条笔记数据。多维表现在已经形成了一个持续增长的竞品素材库每次做选题规划时直接按点赞数排序就能找到最近一周的爆款。拿到这些数据后可以做几件非常实际的事情分析爆款标题的共性模式比如高频词、句式特征对比不同时间段的发布数据找到目标账号的活跃规律按收藏数和点赞数的比例判断哪些内容更“实用”而非仅仅是“好看”把高互动视频的封面和标题整理成灵感库辅助团队成员讨论。这套流程最值钱的地方不在于“抓取”本身而在于它把数据变成了一个可持续积累的资产。以前数据是散落在各个截屏和收藏夹里的现在它们被结构化管理随时可以导出分析。6.2 进一步扩展的方向当前这套方案做的是视频信息的抓取和沉淀如果继续深入还有几个方向可以扩展把抓取范围从视频扩展到图文笔记提取图文内容中的核心文字描述用于内容选题分析接一个大语言模型节点对抓取的标题和内容做自动标签分类和情感分析这样数据表的可用性会大幅提升在 Coze 中做一个“日报自动生成”的工作流每天定时汇总昨日新增数据生成一份简化分析报告推送到飞书群把多维表和飞书看板打通实时统计爆款率、互动率等核心指标实现数据可视化看板。每一个扩展方向的工程量都不大但产生的价值却是实打实的。尤其是一旦接入了大语言模型这套系统就从“数据采集工具”升级为了“内容分析助手”这也是 AI 智能体应用案例最典型的落地模式。7. 写在最后的一点心得体会搭建这套工作流的过程中我最大的感受是AI 智能体最大的门槛不在技术而在于对业务场景的理解。Coze 的工具链已经成熟到可以支撑大部分自动化场景但如果你不清楚自己要什么数据、数据结构怎么设计、数据怎么用技术上再完备也是白搭。另外一个体会是做这类自动化项目要抱着“代码一定会出 bug”的心态去做。不要试图一次构建完美而是先把最简版的流程跑通然后再针对每个节点逐步优化。我第一版工作流只有五个节点跑通之后才陆续加了去重逻辑、数字转换、失败分流这些增强功能。在 Coze 上调试节点要养成在改动后重新发布的习惯因为外部触发尤其是在飞书群里调用机器人默认使用的是已发布版本。有一次我调整了代码节点但忘了点右上角的发布按钮结果在飞书里试了半天一直用的是旧逻辑。如果你正准备搭建自己的智能体工作流我建议从小场景入手。不要一开始就做全自动内容矩阵那太复杂。先选一个最繁琐、最重复的手工操作把它自动化掉跑通了之后再叠加新功能。这套抓取小红书链接入飞书多维表的过程就是一个极好的入门案例希望能给你带来一些灵感和可复用的方法。在你的工作中一定还有更多可以自动化的环节剩下的就交给好奇心驱动你继续探索了。
返回列表