Skip to content

Aliang-CN/trend_radar

Repository files navigation

AI短剧舆情监控分析系统

🎯 专注于AI短剧领域的舆情监控分析系统 - 多平台热点聚合+智能分析工具

功能特点

  • 📱 多平台监控:支持抖音、B站、微博、小红书、知乎等主流平台
  • 🤖 AI短剧关键词:内置AI短剧相关关键词库,智能筛选相关内容
  • 📊 智能排序:基于排名、频次、热度的权重算法
  • 🔔 多渠道推送:支持企业微信、飞书、钉钉、Telegram、邮件推送
  • 📈 数据分析:生成HTML报告,可视化展示舆情趋势
  • ⚙️ 灵活配置:支持关键词配置、推送时间窗口、运行模式等

项目结构

trend_radar/
├── config/                 # 配置文件目录
│   ├── config.yaml        # 主配置文件
│   └── ai_drama_keywords.txt  # AI短剧关键词库
├── crawlers/              # 爬虫模块
│   ├── __init__.py
│   ├── base.py           # 基础爬虫类
│   ├── douyin.py         # 抖音爬虫
│   ├── bilibili.py       # B站爬虫
│   ├── weibo.py          # 微博爬虫
│   └── xiaohongshu.py    # 小红书爬虫
├── analyzers/            # 分析模块
│   ├── __init__.py
│   ├── keyword_filter.py # 关键词筛选
│   └── ranker.py         # 排序算法
├── notifiers/            # 通知模块
│   ├── __init__.py
│   ├── wechat.py         # 企业微信
│   ├── feishu.py         # 飞书
│   ├── dingtalk.py       # 钉钉
│   ├── telegram.py       # Telegram
│   └── email.py          # 邮件
├── reports/              # 报告生成
│   ├── __init__.py
│   └── html_generator.py # HTML报告生成器
├── output/               # 输出目录
├── main.py              # 主程序入口
└── requirements.txt     # 依赖包

快速开始

1. 安装依赖

# 使用 pip
pip install -r requirements.txt

# 或使用 conda
conda install --file requirements.txt

2. 配置参数

2.1 复制配置文件

cp config/config.yaml.example config/config.yaml

2.2 编辑配置文件

编辑 config/config.yaml,配置以下内容:

  • 通知渠道:至少配置一个通知渠道(企业微信/飞书/钉钉/Telegram/邮件)
  • 运行模式:选择 daily(每日汇总)、current(当前榜单)或 incremental(增量监控)
  • 推送时间窗口:设置允许推送的时间范围
  • 分析参数:调整权重配置、热度阈值等

2.3 配置关键词

编辑 config/ai_drama_keywords.txt,配置AI短剧相关关键词。系统已内置常用关键词,可根据需要调整。

3. 运行程序

# 单次运行(测试用)
python main.py --once

# 定时运行(生产环境)
python main.py

配置说明

关键词配置

config/ai_drama_keywords.txt 中配置关键词,支持三种类型:

  • 普通关键词:直接匹配,包含任意一个即可
  • 必须关键词(+前缀):必须包含,所有必须关键词都要匹配
  • 过滤关键词(!前缀):排除包含该词的内容

示例:

AI短剧          # 普通关键词
微短剧+         # 必须关键词
数字人短剧      # 普通关键词
!广告           # 过滤关键词(排除广告内容)
!营销号         # 过滤关键词

运行模式

  • daily(每日汇总):每天在指定时间(默认8:00、12:00、18:00)运行,推送所有匹配内容
  • current(当前榜单):每小时运行一次,推送最新榜单
  • incremental(增量监控):每30分钟运行一次,仅推送新增内容

通知渠道配置

企业微信

  1. 在企业微信群中添加"群机器人"
  2. 获取 Webhook URL
  3. 在配置文件中填入 webhook_url

飞书

  1. 在飞书群中添加"自定义机器人"
  2. 获取 Webhook URL
  3. 在配置文件中填入 webhook_url

钉钉

  1. 在钉钉群中添加"自定义机器人"
  2. 获取 Webhook URL 和 Secret
  3. 在配置文件中填入 webhook_urlsecret

Telegram

  1. 与 @BotFather 对话创建机器人
  2. 获取 Bot Token
  3. 获取 Chat ID(与 @userinfobot 对话)
  4. 在配置文件中填入 bot_tokenchat_id

邮件

  1. 配置 SMTP 服务器信息
  2. 填入发送邮箱和密码(QQ邮箱需使用授权码)
  3. 填入接收邮箱列表

核心功能

1. 多平台数据采集

  • 抖音:抓取热点榜单和搜索内容
  • B站:抓取热门视频和搜索结果
  • 微博:抓取热搜榜单
  • 小红书:抓取热门内容(需处理登录)

2. 智能筛选

  • 基于关键词库进行内容筛选
  • 支持必须关键词、过滤关键词等复杂规则
  • 自动计算关键词匹配度

3. 权重排序

综合以下因素进行排序:

  • 排名权重(60%):平台排名越靠前得分越高
  • 频次权重(30%):匹配的关键词越多得分越高
  • 热度权重(10%):热度值越高得分越高

4. 报告生成

  • 生成美观的HTML报告
  • 包含统计数据、内容列表、关键词标签等
  • 同时保存JSON格式的原始数据

5. 多渠道推送

  • 支持同时配置多个通知渠道
  • 自动格式化消息内容
  • 支持时间窗口控制,避免深夜打扰

输出说明

程序运行后会在 output/ 目录下生成:

  • ai_drama_report_YYYYMMDD_HHMMSS.html:HTML格式报告
  • ai_drama_data_YYYYMMDD_HHMMSS.json:JSON格式数据
  • history.json:历史数据(用于增量模式)

注意事项

  1. 反爬虫机制:部分平台有反爬虫机制,可能需要:

    • 使用代理IP
    • 增加请求间隔
    • 使用Selenium等工具
  2. API限制:某些平台的API可能需要:

    • 登录认证
    • API密钥
    • 处理验证码
  3. 数据准确性:爬虫数据仅供参考,建议结合官方数据源验证

  4. 合规使用:请遵守各平台的使用条款,合理使用爬虫功能

开发说明

添加新平台爬虫

  1. crawlers/ 目录下创建新的爬虫类
  2. 继承 BaseCrawler 基类
  3. 实现 crawl_trending() 方法
  4. main.py 中注册新爬虫

自定义排序算法

修改 analyzers/ranker.py 中的权重配置和计算方法。

扩展通知渠道

  1. notifiers/ 目录下创建新的通知器类
  2. 实现 send() 方法
  3. main.py 中注册新通知器

常见问题

Q: 爬虫无法获取数据?

A: 检查网络连接、请求间隔设置,部分平台可能需要登录或处理反爬虫机制。

Q: 通知推送失败?

A: 检查配置是否正确,特别是Webhook URL、Token等参数。

Q: 如何调整筛选规则?

A: 修改 config/ai_drama_keywords.txt 文件,添加或删除关键词。

Q: 如何修改推送时间?

A: 在 config/config.yaml 中修改 push_time_window 配置。

许可证

GPL-3.0 License

参考项目

本项目参考了 TrendRadar 的设计思路,专门针对AI短剧领域进行了优化和定制。

About

trend_radar AI短剧舆情监控分析系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published