尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

影刀RPA 自动化舆情监控:关键词预警与报告生成

影刀RPA 自动化舆情监控:关键词预警与报告生成
📅 发布时间:2026/7/24 0:17:48

影刀RPA 自动化舆情监控:关键词预警与报告生成

作者:林焱


写在前面

品牌负面舆情一旦爆发,几个小时内可能蔓延全网。靠人工每天刷微博、知乎、新闻,根本来不及。影刀可以帮你搭一套7×24小时的舆情监控系统:定时采集多个平台的内容→关键词匹配→情感初步判断→有风险立即推送告警。

本文从零到一搭建这套系统。


一、系统架构

拼多多店群自动化报活动上架!

数据来源: ├── 微博(关键词搜索) ├── 知乎(话题搜索) ├── 新闻网站(RSS订阅) └── 百度指数(品牌声量) 处理流程: 采集数据 → 关键词过滤 → 情感判断 → 风险评分 → 告警/汇总报告

二、RSS新闻监控(最简单稳定的方案)

很多新闻网站提供RSS订阅,不需要爬虫就能获取内容,是舆情监控的首选数据源。

importfeedparserimportrequestsimportjsonimporttimeimportdatetimeimportrefromcollectionsimportdefaultdictdefmonitor_rss_feeds(feed_urls,keywords,lookback_hours=24):""" 监控RSS新闻中的关键词 feed_urls: RSS地址列表 keywords: 监控关键词列表 lookback_hours: 只看最近N小时的内容 """cutoff_time=datetime.datetime.now()-datetime.timedelta(hours=lookback_hours)matched_articles=[]forfeed_urlinfeed_urls:try:feed=feedparser.parse(feed_url)forentryinfeed.entries:# 解析发布时间ifhasattr(entry,'published_parsed'):importcalendar pub_time=datetime.datetime.fromtimestamp(calendar.timegm(entry.published_parsed))else:pub_time=datetime.datetime.now()# 只处理时间窗口内的文章ifpub_time<cutoff_time:continue# 标题+摘要全文搜索full_text=f"{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(f"RSS采集失败:{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安全","公司名称","产品名"]articles=monitor_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_score=SnowNLP(text).sentimentsexcept:sentiment_score=0.5# 无法判断时返回中性# 负面词计数negative_count=sum(1forwordinNEGATIVE_WORDSifwordintext)positive_count=sum(1forwordinPOSITIVE_WORDSifwordintext)# 综合判断风险级别ifnegative_count>=3orsentiment_score<0.2:risk_level="高风险"elifnegative_count>=1orsentiment_score<0.4:risk_level="中风险"elifpositive_count>=2orsentiment_score>0.7:risk_level="正面"else:risk_level="中性"returnsentiment_score,risk_level,negative_count# 对采集到的文章进行情感分析forarticleinarticles:score,risk,neg_count=analyze_sentiment(article['标题']+' '+article['摘要'])article['情感得分']=round(score,3)article['风险级别']=risk article['负面词数量']=neg_count# 按风险排序articles.sort(key=lambdax:['高风险','中风险','中性','正面'].index(x.get('风险级别','中性')))

四、实时告警推送


defsend_alert(articles,webhook_url):""" 推送高风险内容告警 """high_risk=[aforainarticlesifa.get('风险级别')=='高风险']ifnothigh_risk:returnalert_content=f"## ⚠️ 舆情风险告警\n\n"alert_content+=f"发现 **{len(high_risk)}** 条高风险内容,请立即关注:\n\n"fori,articleinenumerate(high_risk[:5],1):# 最多显示5条alert_content+=f"**{i}. [{article['标题']}]({article['链接']})**\n"alert_content+=f"> 来源:{article['来源']}| 时间:{article['发布时间']}\n"alert_content+=f"> 命中关键词:`{article['命中关键词']}`\n"alert_content+=f">{article['摘要'][:100]}...\n\n"iflen(high_risk)>5:alert_content+=f"\n> 还有{len(high_risk)-5}条未展示,请查看完整报告\n"# 发送到企业微信群importrequests payload={"msgtype":"markdown","markdown":{"content":alert_content}}resp=requests.post(webhook_url,json=payload)print(f"告警已推送:{resp.json()}")ALERT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key"send_alert(articles,ALERT_WEBHOOK)

五、每日舆情汇总报告

importopenpyxlfromopenpyxl.stylesimportPatternFill,Font,Alignmentdefgenerate_daily_report(articles,output_file=None):"""生成每日舆情汇总Excel报告"""ifoutput_fileisNone:date_str=datetime.datetime.now().strftime('%Y%m%d')output_file=f"舆情监控报告_{date_str}.xlsx"wb=openpyxl.Workbook()# Sheet1:概览ws_summary=wb.active ws_summary.title="每日概览"total=len(articles)risk_counts=defaultdict(int)forainarticles:risk_counts[a.get('风险级别','未知')]+=1ws_summary.append(["舆情监控日报",datetime.datetime.now().strftime('%Y-%m-%d')])ws_summary.append([])ws_summary.append(["风险级别","数量","占比"])forrisk_levelin['高风险','中风险','中性','正面']:count=risk_counts.get(risk_level,0)ws_summary.append([risk_level,count,f"{count/total*100:.1f}%"iftotalelse"0%"])ws_summary.append(["合计",total,"100%"])# Sheet2:明细ws_detail=wb.create_sheet("明细数据")headers=["来源","标题","风险级别","情感得分","命中关键词","发布时间","摘要","链接"]ws_detail.append(headers)# 设置标题样式forcellinws_detail[1]:cell.font=Font(bold=True)cell.fill=PatternFill(start_color="1565C0",fill_type="solid")cell.font=Font(bold=True,color="FFFFFF")# 风险级别对应颜色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)# 按风险级别着色risk=article.get('风险级别','中性')color=risk_colors.get(risk,'E0E0E0')fill=PatternFill(start_color=color,fill_type="solid")forcellinws_detail[ws_detail.max_row]:cell.fill=fill# 调整列宽ws_detail.column_dimensions['B'].width=40ws_detail.column_dimensions['G'].width=50ws_detail.column_dimensions['H'].width=50wb.save(output_file)print(f"舆情报告已生成:{output_file}")returnoutput_file

TEMU店群矩阵自动化运营核价报活动

六、完整定时执行流程

defrun_sentiment_monitoring():"""完整的舆情监控流程"""print(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M')}] 开始舆情监控...")# 1. 采集articles=monitor_rss_feeds(RSS_FEEDS,KEYWORDS,lookback_hours=2)# 2. 情感分析forarticleinarticles:text=article['标题']+' '+article['摘要']score,risk,neg_count=analyze_sentiment(text)article.update({'情感得分':score,'风险级别':risk,'负面词数量':neg_count})# 3. 告警send_alert(articles,ALERT_WEBHOOK)# 4. 每天早上8点生成日报ifdatetime.datetime.now().hour==8:report_file=generate_daily_report(articles)print(f"日报已生成:{report_file}")print(f"监控完成,共分析{len(articles)}条内容")# 在影刀中设置每2小时执行一次run_sentiment_monitoring()

七、踩坑记录

坑1:SnowNLP对网络语言识别不准
SnowNLP是基于微博语料训练的,对中规中矩的新闻文章识别准确率约70%。提高准确率的方法:结合自定义负面词典,负面词数量比情感得分更可靠。

坑2:RSS源有些不稳定
部分媒体的RSS地址会变化或停更。建议定期检查RSS是否还有更新,超过7天没新内容的RSS源标记为失效。

坑3:中文分词影响关键词匹配
直接字符串匹配"品牌A" in text可以用,但对"品/牌/A"这类被分词打散的情况无效。建议同时用jieba分词后匹配:"品牌A" in " ".join(jieba.cut(text))。

坑4:同一条内容被多个源重复收录
同一篇文章可能出现在多个RSS源里,需要URL去重。用文章链接的MD5作为唯一标识,已处理的链接存到文件或SQLite里,避免重复告警。


总结

舆情监控系统的三个核心:数据采集(RSS是最稳的免费方案)、情感判断(规则词典+SnowNLP双保险)、及时告警(企业微信群机器人实时推送)。搭好后,高风险内容第一时间到手机,不再靠人工刷屏。

署名:林焱

相关新闻

  • AppCertDlls:进程创建路径上的 DLL 入口
  • 亨得利服务项目及价格查询|服务电话及全部维修地址权威信息通告(2026年7月更新) - 亨得利官方博客
  • 权威发布:百达翡丽深圳2026年7月最新客户服务网点地址及售后电话! - 百达翡丽官方售后中心

最新新闻

  • 新乡坏氧防静电地坪施工厂家 本地实用选型全指南 - 品牌优推
  • 亲身探访乌鲁木齐亨得利名表服务中心|详细地址与售后热线(2026年7月更新) - 亨得利官方
  • 2026年7月最新天梭成都太古里维修保养服务电话 - 天梭服务中心
  • 基于YOLOv11的道路缺陷检测系统开发与优化实践
  • 2026广州智能安全应急工业园区生产厂家挑选实用指南 - 品牌优推
  • 2026年新发布:厂房防火墙制造厂选择指南与知名服务商解析 - 装修教育财税推荐2026

日新闻

  • 武汉卡地亚LOVE钻戒与钻石项链回收变现攻略|多家门店行情参考 - 大牌深度测评
  • 2026年无锡地区健康管理如何考量?四家机构业务体系概览
  • 2026图片去水印软件哪个好用 手机电脑免费工具盘点 - 免费软件工具方法教程

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号