影刀RPA 自动化舆情监控:关键词预警与报告生成
影刀RPA 自动化舆情监控关键词预警与报告生成作者林焱写在前面品牌负面舆情一旦爆发几个小时内可能蔓延全网。靠人工每天刷微博、知乎、新闻根本来不及。影刀可以帮你搭一套7×24小时的舆情监控系统定时采集多个平台的内容→关键词匹配→情感初步判断→有风险立即推送告警。本文从零到一搭建这套系统。一、系统架构拼多多店群自动化报活动上架数据来源 ├── 微博关键词搜索 ├── 知乎话题搜索 ├── 新闻网站RSS订阅 └── 百度指数品牌声量 处理流程 采集数据 → 关键词过滤 → 情感判断 → 风险评分 → 告警/汇总报告二、RSS新闻监控最简单稳定的方案很多新闻网站提供RSS订阅不需要爬虫就能获取内容是舆情监控的首选数据源。importfeedparserimportrequestsimportjsonimporttimeimportdatetimeimportrefromcollectionsimportdefaultdictdefmonitor_rss_feeds(feed_urls,keywords,lookback_hours24): 监控RSS新闻中的关键词 feed_urls: RSS地址列表 keywords: 监控关键词列表 lookback_hours: 只看最近N小时的内容 cutoff_timedatetime.datetime.now()-datetime.timedelta(hourslookback_hours)matched_articles[]forfeed_urlinfeed_urls:try:feedfeedparser.parse(feed_url)forentryinfeed.entries:# 解析发布时间ifhasattr(entry,published_parsed):importcalendar pub_timedatetime.datetime.fromtimestamp(calendar.timegm(entry.published_parsed))else:pub_timedatetime.datetime.now()# 只处理时间窗口内的文章ifpub_timecutoff_time:continue# 标题摘要全文搜索full_textf{entry.get(title,)}{entry.get(summary,)}matched_keywords[kwforkwinkeywordsifkwinfull_text]ifmatched_keywords:matched_articles.append({来源:feed.feed.get(title,feed_url),标题:entry.get(title,),摘要:entry.get(summary,)[:200],链接:entry.get(link,),发布时间:pub_time.strftime(%Y-%m-%d %H:%M),命中关键词:, .join(matched_keywords),})exceptExceptionase:print(fRSS采集失败{feed_url}-{e})returnmatched_articles# 配置RSS源RSS_FEEDS[https://36kr.com/feed,# 36氪https://www.huxiu.com/rss/,# 虎嗅https://www.ifanr.com/feed,# 爱范儿https://news.qq.com/rss/tech.xml,# 腾讯科技# 还可以添加各平台的搜索RSS如百度新闻、Google News的搜索结果RSS]# 监控关键词KEYWORDS[品牌A,品牌A食品,品牌A安全,公司名称,产品名]articlesmonitor_rss_feeds(RSS_FEEDS,KEYWORDS)print(f发现{len(articles)}篇相关文章)三、情感分析判断正面/负面fromsnownlpimportSnowNLP# pip install snownlp# 负面词汇词典可自定义扩展NEGATIVE_WORDS[投诉,举报,欺诈,虚假,问题,缺陷,召回,致癌,危险,事故,处罚,罚款,违规,索赔,退款,维权,曝光,负面,差评,中毒,过期]POSITIVE_WORDS[好评,推荐,优质,创新,突破,荣获,获奖,上市,合作,融资,获批,认证]defanalyze_sentiment(text): 情感分析返回风险级别 returns: (sentiment_score, risk_level) # SnowNLP情感得分0-1越接近1越正面try:sentiment_scoreSnowNLP(text).sentimentsexcept:sentiment_score0.5# 无法判断时返回中性# 负面词计数negative_countsum(1forwordinNEGATIVE_WORDSifwordintext)positive_countsum(1forwordinPOSITIVE_WORDSifwordintext)# 综合判断风险级别ifnegative_count3orsentiment_score0.2:risk_level高风险elifnegative_count1orsentiment_score0.4:risk_level中风险elifpositive_count2orsentiment_score0.7:risk_level正面else:risk_level中性returnsentiment_score,risk_level,negative_count# 对采集到的文章进行情感分析forarticleinarticles:score,risk,neg_countanalyze_sentiment(article[标题] article[摘要])article[情感得分]round(score,3)article[风险级别]risk article[负面词数量]neg_count# 按风险排序articles.sort(keylambdax:[高风险,中风险,中性,正面].index(x.get(风险级别,中性)))四、实时告警推送defsend_alert(articles,webhook_url): 推送高风险内容告警 high_risk[aforainarticlesifa.get(风险级别)高风险]ifnothigh_risk:returnalert_contentf## ⚠️ 舆情风险告警\n\nalert_contentf发现 **{len(high_risk)}** 条高风险内容请立即关注\n\nfori,articleinenumerate(high_risk[:5],1):# 最多显示5条alert_contentf**{i}. [{article[标题]}]({article[链接]})**\nalert_contentf 来源{article[来源]}| 时间{article[发布时间]}\nalert_contentf 命中关键词{article[命中关键词]}\nalert_contentf{article[摘要][:100]}...\n\niflen(high_risk)5:alert_contentf\n 还有{len(high_risk)-5}条未展示请查看完整报告\n# 发送到企业微信群importrequests payload{msgtype:markdown,markdown:{content:alert_content}}resprequests.post(webhook_url,jsonpayload)print(f告警已推送{resp.json()})ALERT_WEBHOOKhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的keysend_alert(articles,ALERT_WEBHOOK)五、每日舆情汇总报告importopenpyxlfromopenpyxl.stylesimportPatternFill,Font,Alignmentdefgenerate_daily_report(articles,output_fileNone):生成每日舆情汇总Excel报告ifoutput_fileisNone:date_strdatetime.datetime.now().strftime(%Y%m%d)output_filef舆情监控报告_{date_str}.xlsxwbopenpyxl.Workbook()# Sheet1概览ws_summarywb.active ws_summary.title每日概览totallen(articles)risk_countsdefaultdict(int)forainarticles:risk_counts[a.get(风险级别,未知)]1ws_summary.append([舆情监控日报,datetime.datetime.now().strftime(%Y-%m-%d)])ws_summary.append([])ws_summary.append([风险级别,数量,占比])forrisk_levelin[高风险,中风险,中性,正面]:countrisk_counts.get(risk_level,0)ws_summary.append([risk_level,count,f{count/total*100:.1f}%iftotalelse0%])ws_summary.append([合计,total,100%])# Sheet2明细ws_detailwb.create_sheet(明细数据)headers[来源,标题,风险级别,情感得分,命中关键词,发布时间,摘要,链接]ws_detail.append(headers)# 设置标题样式forcellinws_detail[1]:cell.fontFont(boldTrue)cell.fillPatternFill(start_color1565C0,fill_typesolid)cell.fontFont(boldTrue,colorFFFFFF)# 风险级别对应颜色risk_colors{高风险:FF6B6B,中风险:FFB347,中性:E0E0E0,正面:90EE90}forarticleinarticles:row[article.get(来源,),article.get(标题,),article.get(风险级别,),article.get(情感得分,),article.get(命中关键词,),article.get(发布时间,),article.get(摘要,),article.get(链接,),]ws_detail.append(row)# 按风险级别着色riskarticle.get(风险级别,中性)colorrisk_colors.get(risk,E0E0E0)fillPatternFill(start_colorcolor,fill_typesolid)forcellinws_detail[ws_detail.max_row]:cell.fillfill# 调整列宽ws_detail.column_dimensions[B].width40ws_detail.column_dimensions[G].width50ws_detail.column_dimensions[H].width50wb.save(output_file)print(f舆情报告已生成{output_file})returnoutput_fileTEMU店群矩阵自动化运营核价报活动六、完整定时执行流程defrun_sentiment_monitoring():完整的舆情监控流程print(f[{datetime.datetime.now().strftime(%Y-%m-%d %H:%M)}] 开始舆情监控...)# 1. 采集articlesmonitor_rss_feeds(RSS_FEEDS,KEYWORDS,lookback_hours2)# 2. 情感分析forarticleinarticles:textarticle[标题] article[摘要]score,risk,neg_countanalyze_sentiment(text)article.update({情感得分:score,风险级别:risk,负面词数量:neg_count})# 3. 告警send_alert(articles,ALERT_WEBHOOK)# 4. 每天早上8点生成日报ifdatetime.datetime.now().hour8:report_filegenerate_daily_report(articles)print(f日报已生成{report_file})print(f监控完成共分析{len(articles)}条内容)# 在影刀中设置每2小时执行一次run_sentiment_monitoring()七、踩坑记录坑1SnowNLP对网络语言识别不准SnowNLP是基于微博语料训练的对中规中矩的新闻文章识别准确率约70%。提高准确率的方法结合自定义负面词典负面词数量比情感得分更可靠。坑2RSS源有些不稳定部分媒体的RSS地址会变化或停更。建议定期检查RSS是否还有更新超过7天没新内容的RSS源标记为失效。坑3中文分词影响关键词匹配直接字符串匹配品牌A in text可以用但对品/牌/A这类被分词打散的情况无效。建议同时用jieba分词后匹配品牌A in .join(jieba.cut(text))。坑4同一条内容被多个源重复收录同一篇文章可能出现在多个RSS源里需要URL去重。用文章链接的MD5作为唯一标识已处理的链接存到文件或SQLite里避免重复告警。总结舆情监控系统的三个核心数据采集RSS是最稳的免费方案、情感判断规则词典SnowNLP双保险、及时告警企业微信群机器人实时推送。搭好后高风险内容第一时间到手机不再靠人工刷屏。署名林焱

相关新闻

ArkUI Provider 和 Consumer 乱用怎么办:中式美食同类多层筛选页为什么别一路传参数

ArkUI Provider 和 Consumer 乱用怎么办:中式美食同类多层筛选页为什么别一路传参数

先把相关概念说清楚知识点在这个问题里怎么看自定义组件冻结功能用来写多页面栈、TabContent、LazyForEach 和 BuilderNode 混用时的刷新边界状态管理 V1 向 V2 迁移用来拆 State 到 Local、Param、Once、Event 的迁移判断Provider / Consumer用来解释跨层级双向同步&#xff0…

2026/7/24 0:10:33 阅读更多 →
【K8S 运维实战】11-资源管理Requests与Limits

【K8S 运维实战】11-资源管理Requests与Limits

资源管理:Requests/Limits 与 QoS 分级 一句话定位:为什么设了 Limits 还是被 OOM QoS 三级怎么用 ResourceQuota 实战。 写在前面 “我明明设了 memory limit 4G,Pod 还是 OOMKilled 了,这是什么玄学?”——这是我遇到过最经典的资源管理困惑。还有一类:“节点资源没用满,…

2026/7/24 0:10:33 阅读更多 →
OpenClaw+Kimi K2.5+Moltbook企业级AI工作流部署指南

OpenClaw+Kimi K2.5+Moltbook企业级AI工作流部署指南

1. OpenClawKimi K2.5Moltbook部署方案概述这个组合堪称当前最强大的AI工作流解决方案之一。OpenClaw作为自动化控制中枢,Kimi K2.5提供核心AI能力,Moltbook则负责交互界面呈现。三者的结合可以打造出一个智能程度极高的工作助手系统。我在实际部署过程中…

2026/7/24 0:09:32 阅读更多 →

最新新闻

为什么93%的AI客服项目在第3个月失败?——资深架构师曝光未公开的流程断点诊断矩阵

为什么93%的AI客服项目在第3个月失败?——资深架构师曝光未公开的流程断点诊断矩阵

更多请点击: https://kaifayun.com 第一章:AI客服项目失败率的宏观归因与行业警示 近年来,全球企业AI客服项目平均失败率持续高于68%(据Gartner 2023年AI实施追踪报告),远超其他AI应用领域。这一高失败率…

2026/7/24 0:19:35 阅读更多 →
贝叶斯强化学习:原理、优势与工程实践

贝叶斯强化学习:原理、优势与工程实践

1. 贝叶斯强化学习的核心优势解析在传统强化学习中,智能体通过试错与环境交互来学习最优策略,这种方法虽然有效,但存在两个关键痛点:一是对不确定性的处理能力有限,二是样本效率低下。贝叶斯强化学习(Bayes…

2026/7/24 0:19:35 阅读更多 →
高光谱图像超分辨率重建技术解析与应用

高光谱图像超分辨率重建技术解析与应用

1. 高光谱图像超分辨率重建的现状与挑战高光谱图像超分辨率重建(Hyperspectral Image Super-Resolution, HSI-SR)是遥感图像处理领域的重要研究方向。与普通RGB图像不同,高光谱图像包含数百个连续的光谱波段,能够提供丰富的地物光…

2026/7/24 0:19:35 阅读更多 →
计算机毕业设计之基于.NET仓库管理系统的设计与实现

计算机毕业设计之基于.NET仓库管理系统的设计与实现

该系统充分利用MVC框架的简洁性、高效性和易用性,net语言,结合SQL Server数据库技术,构建了一个功能完善的仓库管理系统。系统涵盖了销售员、采购员、库管员、客户、供应商、货物库存、货物接收等多个核心模块,实现了货物库存的快…

2026/7/24 0:19:35 阅读更多 →
【Kimi论文辅助黄金公式】:1个提示词模板+2类学科适配策略+4步文献综述提速法

【Kimi论文辅助黄金公式】:1个提示词模板+2类学科适配策略+4步文献综述提速法

更多请点击: https://kaifayun.com 第一章:【Kimi论文辅助黄金公式】:1个提示词模板2类学科适配策略4步文献综述提速法 Kimi论文辅助黄金公式核心提示词模板 你是一位[学科领域]资深研究者,请基于以下要求协助我完成学术写作&a…

2026/7/24 0:18:35 阅读更多 →
本地大模型部署全攻略:从Ollama到企业级容器化

本地大模型部署全攻略:从Ollama到企业级容器化

1. 本地大模型部署方式全景解析在AI技术快速发展的当下,本地部署大模型已成为企业数字化转型和个人开发者探索AI能力的重要选择。与云端API调用相比,本地部署能够提供更高的数据隐私性、更低的长期使用成本以及更灵活的定制空间。目前主流的本地部署方式…

2026/7/24 0:18:35 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻