如何用 Bright Data Web Scraper API + Coze 搭建 Reddit 行业情报聚合 Bot(2026 实战指南)

如何用 Bright Data Web Scraper API + Coze 搭建 Reddit 行业情报聚合 Bot(2026 实战指南)

最近我越来越觉得,很多团队不是缺信息,是缺一个每天稳定把信息整理好的人。

比如你每天早上要看 AI agent、TikTok Shop、cross border ecommerce 这些关键词。打开 Reddit,翻帖子,看评论,判断大家到底在兴奋什么、吐槽什么、担心什么,再整理几句发到飞书群。一天两天还行,连续做一周,人就开始烦了。如果你也想把这件事自动化,可以先从这里准备 Bright Data 账号,Bright Data 专属注册链接

这篇文章我只做一个很具体的东西。

用 Bright Data Web Scraper API + 扣子 Coze,搭一个 Reddit 行业情报聚合 Bot。它属于市场情报自动化的 starter 版,不是先铺竞品价格、关键词排名、多个社媒平台这些场景,而是先把「Reddit 社区讨论」这一条链路跑通。

关键词也很明确,bright data coze 教程bright data api coze 接入coze 工作流 web scrapingReddit 数据采集市场情报自动化 coze

Bright Data Web Scraper API 是什么?

它是一种预构建数据采集服务,可以从 Reddit、LinkedIn、电商平台和社交媒体获取结构化数据,不需要你自己处理反爬、页面解析和字段清洗。

为什么 Coze 原生工具还不够

Coze 本身已经很适合做 Bot 和工作流编排,但如果要做长期市场情报,只靠原生搜索会有几个问题。

能力 Coze 原生搜索 接入 Bright Data API 后
数据来源 通用搜索结果为主 可以指定 Reddit 数据集和关键词采集方式
数据结构 常需要二次整理 直接返回标题、正文、评论、点赞、社区等字段
批量采集 适合轻量查询 适合多关键词、定期跑、沉淀日报
调试与复用 结果波动时不好排查 trigger、progress、snapshot 每一步都能检查

为什么选 API 方案?

因为这个场景本身就很适合代码节点,Bright Data 的数据采集是异步任务,要先触发采集,拿到 snapshot_id,再轮询状态,最后下载结果。把这几步写进 Coze,逻辑更清楚,也方便后面做错误处理和飞书推送。

所以这次的思路很明确,Coze 负责把流程串起来,Bright Data 负责把 Reddit 数据拿回来。

为什么不用自己写 Reddit 爬虫

如果只是临时抓一两个页面,自己写脚本当然也能跑。

但长期做 Reddit 数据采集,麻烦很快就会出现。反爬机制、速率限制,尤其是 HTTP 429,账号风控,页面结构变化,任何一个都可能让脚本突然失效。

更麻烦的是,这些问题通常不是业务问题。

你本来想做行业情报,结果时间全花在维护采集系统上。

Bright Data Web Scraper API 的价值就在这里,它已经把数据采集基础设施封装好了。开发者只需要关注关键词、采集范围、结果字段和后续分析,不需要每天和 Reddit 页面结构搏斗。

坦率讲,这才是我愿意把它接进 Coze 的原因。

Coze 管流程。

Bright Data 管数据。

LLM 管总结。

整体架构

回到这个 starter 版 Bot,我只选 Reddit。

Reddit 特别适合做「社区讨论信号」。你能看到真实用户和从业者在聊什么,哪些观点被顶上去,哪些话题看起来热闹但评论区并不买账。

第一版 Bot 最怕的不是功能少,而是每个平台字段都不一样,最后调试时间全花在清洗数据上。先用 Reddit 跑通,一条链路足够完整。等它稳定以后,再考虑是否扩展到其他平台,才比较稳。

这次用的是 Reddit - Posts - discover by keyword,dataset_id 是 gd_lvz8ah06191smkebj4

不过这里有个很真实的小坑。

我在 Coze 里跑了一次,关键词是 AI agent,采集 3 条帖子。结果能拿到标题、链接、点赞和评论数,但 3 条都是空内容帖,没有正文。

所以第一版工作流不能只做「采集成功」判断,还要做「有效内容」判断。

我的建议是,先用 Reddit - Posts - discover by keyword 找帖子。如果返回里有 description_markdowncomments,就直接交给 LLM。如果有效内容为 0,就让日报明确标注「标题级分析」。后续增强版再把 Top 3 的 URL 传给 Reddit - Posts - collect by URL 补采。

整个链路大概是这样。
#mermaid-svg-BAZIKIf6WZzVkMOY{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BAZIKIf6WZzVkMOY .error-icon{fill:#552222;}#mermaid-svg-BAZIKIf6WZzVkMOY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BAZIKIf6WZzVkMOY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BAZIKIf6WZzVkMOY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BAZIKIf6WZzVkMOY .marker.cross{stroke:#333333;}#mermaid-svg-BAZIKIf6WZzVkMOY svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BAZIKIf6WZzVkMOY p{margin:0;}#mermaid-svg-BAZIKIf6WZzVkMOY .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster-label text{fill:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster-label span{color:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster-label span p{background-color:transparent;}#mermaid-svg-BAZIKIf6WZzVkMOY .label text,#mermaid-svg-BAZIKIf6WZzVkMOY span{fill:#333;color:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY .node rect,#mermaid-svg-BAZIKIf6WZzVkMOY .node circle,#mermaid-svg-BAZIKIf6WZzVkMOY .node ellipse,#mermaid-svg-BAZIKIf6WZzVkMOY .node polygon,#mermaid-svg-BAZIKIf6WZzVkMOY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BAZIKIf6WZzVkMOY .rough-node .label text,#mermaid-svg-BAZIKIf6WZzVkMOY .node .label text,#mermaid-svg-BAZIKIf6WZzVkMOY .image-shape .label,#mermaid-svg-BAZIKIf6WZzVkMOY .icon-shape .label{text-anchor:middle;}#mermaid-svg-BAZIKIf6WZzVkMOY .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BAZIKIf6WZzVkMOY .rough-node .label,#mermaid-svg-BAZIKIf6WZzVkMOY .node .label,#mermaid-svg-BAZIKIf6WZzVkMOY .image-shape .label,#mermaid-svg-BAZIKIf6WZzVkMOY .icon-shape .label{text-align:center;}#mermaid-svg-BAZIKIf6WZzVkMOY .node.clickable{cursor:pointer;}#mermaid-svg-BAZIKIf6WZzVkMOY .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BAZIKIf6WZzVkMOY .arrowheadPath{fill:#333333;}#mermaid-svg-BAZIKIf6WZzVkMOY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BAZIKIf6WZzVkMOY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BAZIKIf6WZzVkMOY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BAZIKIf6WZzVkMOY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BAZIKIf6WZzVkMOY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BAZIKIf6WZzVkMOY .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster text{fill:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY .cluster span{color:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BAZIKIf6WZzVkMOY .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BAZIKIf6WZzVkMOY rect.text{fill:none;stroke-width:0;}#mermaid-svg-BAZIKIf6WZzVkMOY .icon-shape,#mermaid-svg-BAZIKIf6WZzVkMOY .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BAZIKIf6WZzVkMOY .icon-shape p,#mermaid-svg-BAZIKIf6WZzVkMOY .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BAZIKIf6WZzVkMOY .icon-shape .label rect,#mermaid-svg-BAZIKIf6WZzVkMOY .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BAZIKIf6WZzVkMOY .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BAZIKIf6WZzVkMOY .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BAZIKIf6WZzVkMOY :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 推送
不推送
输入行业关键词
Coze 工作流
代码节点触发 Reddit keyword 采集
下载 discover 结果
LLM 生成行业情报日报
是否推送飞书
飞书群机器人推送
结束

开始前准备什么

需要准备的东西不多。

  1. Coze 账号,用来创建 Workflow
  2. Bright Data 账号,用来获取 API Token
  3. Reddit keyword 数据集,gd_lvz8ah06191smkebj4
  4. 飞书群机器人 Webhook,用来接收日报

Bright Data 账号可以从这里注册,Bright Data 注册链接。使用"tao20"即赠20美元试用。

在设置-用户与API密钥处找到自己的YOUR_BRIGHTDATA_API_KEY

在爬取器-社交媒体中找到Reddit,然后点击Reddit- Posts - discover by keyword,再选择爬虫API。

Bright Data 控制台提供 Python、Node.js、cURL 等多种语言示例代码,按需获取即可。

如果想获取具体的下载内容,可以在我的爬虫器-日志中进行下载。

飞书机器人创建很简单,在群聊中右上角...处点击设置,然后添加机器人即可。

这个 Bot 怎么搭

我建议先做一个可以手动运行的版本。

在 Coze 里新建 Workflow,输入先放这几个字段。

json 复制代码
{
  "keywords": "AI agent",
  "reddit_date": "Past month",
  "reddit_sort_by": "Hot",
  "num_of_posts": 10
}

第一个代码节点负责触发 Bright Data 采集。

Reddit 的请求参数核心是这些。

json 复制代码
{
  "dataset_id": "gd_lvz8ah06191smkebj4",
  "type": "discover_new",
  "discover_by": "keyword",
  "payload": [
    {
      "keyword": "AI agent",
      "date": "Past month",
      "num_of_posts": 10,
      "sort_by": "Hot"
    }
  ]
}

Bright Data Web Scraper API 是异步采集流程,这块一定不要只复制 progress 代码。

完整流程是三步。

先调用 trigger 发起采集,拿到 snapshot_id

再调用 progress/{snapshot_id} 等状态变成 ready

最后调用 snapshot/{snapshot_id} 下载结果。

在 Coze 里,我建议把代码拆成三个小节点。

第一个代码节点只负责触发 Reddit 采集,并返回 snapshot_id

第二个代码节点只负责轮询状态,如果还在 running,就等待几秒再查。如果状态是 failed,就把错误信息直接输出,不要继续往下跑。

第三个代码节点只负责下载 snapshot,并把 Reddit 数据整理成统一数组。

第四步交给 LLM 节点生成日报。

当前工作流截图里,节点顺序是「触发 Reddit 数据采集」→「轮询采集进度」→「下载采集结果」→「生成行业情报日报」→「是否推送飞书」→「推送飞书群」。如果发现有效内容为 0,就在日报里标注标题级分析,后续再加 collect by URL 补采节点。

这样做的好处很明显。

一旦失败,你能知道到底是 trigger 失败,还是 progress 没 ready,还是 snapshot 下载失败。否则所有逻辑塞进一个大代码节点,调试起来会非常难受。

字段也建议先收窄。

Reddit 先保留 titleurluser_postedcommunity_namedescription_markdowncommentsnum_upvotesnum_commentsdate_posted

如果本次只有标题和链接,日报里要明确写「本次为标题级分析」。

怎么让 LLM 真的像情报分析

LLM 节点不要让它自由发挥,提示词要限制死。

text 复制代码
你是一个行业情报分析助手。
只根据输入的 Reddit 帖子、正文和评论生成日报,不要编造。
Reddit 代表社区讨论信号,请重点分析用户真实观点、争议点和高互动内容。
请合并重复信息,提炼 3 条最重要的趋势。
每条趋势都要说明证据来自哪条帖子或评论。
如果 Reddit 采集失败,必须在日报里说明,不要假装成功。
如果只有标题和链接,没有正文和评论,必须标注为标题级分析。
输出中文,适合飞书群阅读。

这里有个判断逻辑很重要。

Reddit 不只是看标题。

标题能告诉你话题是什么,正文能告诉你作者为什么这么说,评论区才经常决定这个观点是不是被社区接受。比如一个帖子说「企业其实不想要 AI agent」,如果评论区也在反复讲「客户要的是稳定结果,不是自主性」,那这就不是一个孤立观点,而是一个值得写进日报的社区共识。

所以 LLM 节点里要把 description_markdowncomments 都喂进去。

实际推送效果如下,能看到数据采集概览、趋势判断、证据帖子和数据质量说明。

这次配套交付物只保留一个项目包,也就是主题一里的「行业新闻聚合 Bot」单场景版本。

text 复制代码
行业情报聚合Bot.tar.gz

读者拿到之后,不需要从零搭节点,直接在 Coze 里导入这个项目包就行。

项目目录大概是这样。

text 复制代码
行业情报聚合Bot/
├─ .env
├─ config/
├─ scripts/
├─ src/
├─ assets/
└─ README.md

最重要的是 .env

导入之后先打开 .env,把里面的占位符换成自己的 Key。这里不要偷懒,也不要把真实 Key 写进 README 或截图里。

bash 复制代码
BRIGHT_DATA_API_KEY=YOUR_BRIGHTDATA_API_KEY
FEISHU_WEBHOOK_URL=YOUR_FEISHU_WEBHOOK_URL

config/ 放工作流配置,scripts/src/ 放采集、轮询、下载代码,assets/ 放截图素材。README 里会写清楚怎么注册 Bright Data、怎么导入项目、怎么配置飞书 Webhook。注册链接也会放进去,Bright Data 专属注册链接

物料下载链接:gitHub链接

拿到交付物后,只需要导入项目包,改 .env,再把关键词换成自己的行业词,就能先手动跑一版。

这也是我觉得项目包比单独丢一份 workflow JSON 更好的地方。

大家不用照着文章重新搭一遍,而是直接给一个能直接导入、直接改配置、直接运行的起点。

成本这块怎么算

这个 Bot 省下来的不是一次搜索的时间,而是每天重复搜索、整理和转发的时间。

一个人每天花 20 分钟看 Reddit,一个月就是 6 到 8 个小时。更现实的是,人会漏看,会忘记发,会因为临时会议打断。

Bot 不会。

Bright Data 按采集使用量计费,Coze 负责流程,飞书负责通知。对小团队来说,最大的价值是稳定。

它每天都用同一种格式,把社区讨论信号推到同一个地方。

这就够了。

FAQ

Bright Data 可以免费使用吗?

可以。Bright Data 提供免费试用,同时部分产品如 Discover API 和 Bright Data MCP 可免费使用。本文用到的 Web Scraper API 建议先用试用额度跑通最小流程。

Reddit 数据采集是否需要自己维护爬虫?

不需要。Web Scraper API 已经提供现成的 Reddit 数据采集能力,你只需要配置关键词、时间范围、排序方式和采集数量。

Coze 可以直接采集 Reddit 吗?

可以做搜索和工作流编排,但要稳定获取结构化 Reddit 数据,尤其是标题、链接、评论、互动数据和正文,还是更适合结合 Bright Data API。

什么时候需要 collect by URL?

discover by keyword 返回的帖子缺少正文或评论时,可以进一步通过 URL 补采完整内容。当前工作流先保留这个判断,后续可以把 Top 3 URL 接到 Reddit - Posts - collect by URL

总结

我越来越喜欢这种小而具体的 AI 工作流。

它没有那么炫,但非常实用。

这次的 Reddit 行业情报聚合 Bot,本质上就是把「每天刷 Reddit」这件事,改造成一条自动化流水线。Bright Data 把数据拿回来,Coze 把流程串起来,LLM 把内容整理成人话,飞书把结果推到团队面前。

如果你想复现,不要一开始就做很多平台。

先选 Reddit。

先手动跑一次。

先让飞书收到第一份日报。

跑通以后,再考虑多关键词、多 subreddit、多平台和定时任务。

注册链接我再放一次,Bright Data 专属注册链接,使用折扣码"tao20",就能获得20美元试用金

等第二天早上飞书自动弹出那份日报的时候,你会有一种很朴素的爽感。

因为你知道,从今天开始,这件小事不用你亲手刷了。

相关推荐
科技每日热闻1 小时前
舒视蓝4.0 AI版!EVNIA弈威海王星系列护眼电竞显示器27M4P5501U来袭
人工智能·科技·游戏·计算机外设
byte轻骑兵1 小时前
【LE Audio】CAS精讲[2]: 服务核心规则,落地音频设备的标准化标识
人工智能·音视频·le audio·低功耗音频·车机蓝牙
果丁智能1 小时前
物联网智能锁落地实践:破解网约房、民宿身份核验与远程权限管控难题
大数据·人工智能·物联网·智能家居
取个鸣字真的难1 小时前
Image2 生成 PPT 的最后分水岭:Prompt
人工智能·prompt·powerpoint
云烟成雨TD1 小时前
Agent Scope Java 2.x 系列【13】权限系统
java·人工智能·agent
大山佬1 小时前
传感器数据处理:从噪声滤波到多传感器融合的嵌入式工程实践
人工智能
恋猫de小郭1 小时前
由于 iOS 26 的键盘变化,Flutter 又要重构键盘区域逻辑
android·前端·flutter
CJH(本人账号)1 小时前
免费开源国产:小米MiMo Code首日GitHub爆火
人工智能·ai·开源·github
不爱土豆唯爱马铃薯1 小时前
MC-033 | 智能任务工作流深度解析
人工智能