← 返回
未分类

猫眼电影个性化推荐

猫眼电影个性化推荐系统——每周抓取中国大陆新上映/即将上映电影,基于用户观影偏好档案智能排序推荐,推送飞书周报
每周抓取中国大陆新上映及即将上映影片,依据用户观影偏好智能排序推荐,并以飞书周报推送
advnljs advnljs 来源
未分类 clawhub v1.0.2 2 版本 100000 Key: 无需
★ 1
Stars
📥 381
下载
💾 0
安装
2
版本
#china#feishu#latest#maoyan#movie#recommendation

概述

猫眼电影个性化推荐系统

每周从猫眼电影 API 抓取中国大陆正在热映和即将上映的全部电影,结合用户观影偏好档案,由 LLM 进行智能匹配、排序和推荐,生成飞书周报推送。

需求

  • Python 3.6+(脚本仅依赖标准库 urllib + json,无需额外安装)
  • 飞书渠道已配置(用于推送周报)
  • 网络可访问猫眼 API(m.maoyan.com

工作原理

每周定时触发
     │
     ▼
① 数据采集:python3 scripts/maoyan_movies.py
   → 输出 movies.json(全量电影数据)
     │
     ▼
② 偏好匹配:AI 读取 movies.json + profile.json
   → LLM 基于 core_traits / recommendation_rules 智能排序
     │
     ▼
③ 生成周报:结构化 Markdown 格式
   → 分级推荐:🎯 强烈推荐 / 👍 值得关注 / 👀 可观望
     │
     ▼
④ 飞书推送:发送到用户会话

数据采集脚本

scripts/maoyan_movies.py 调用猫眼移动端 API:

API说明
-----------
ajax/movieOnInfoList正在热映列表
ajax/comingList?ci=10即将上映列表(极限 100 部)
ajax/detailmovie?movieId=单部电影详情(类型、导演、时长、制片国家等)

输出 JSON 包含 now_showing(正在热映)、coming(即将上映)两个列表,每部电影含:片名、上映日期、评分、主演、类型、导演、制片国家、时长、想看人数等字段。

偏好匹配逻辑

AI 读取 profile.json 中的:

  • liked_movies:用户已喜欢/观看的电影,每部标注了喜欢的理由和特征标签 → LLM 用于学习用户口味
  • want_to_watch:用户已知且想看但还没看的 → 与新片列表交叉比对,命中时直接标记「你已标记想看」
  • core_traits:用户观影偏好骨架(类型偏好、IP 偏好、风格倾向、排除信号)
  • recommendation_rules:匹配规则(优先级逻辑、boost/downgrade 关键词)

LLM 对每部未看过的电影打分,按匹配度排序,输出三级推荐。

安装

# 1. 安装 skill(通过 ClawHub 或手动复制)
clawhub install movie-rec-personal-cn

# 2. 编辑偏好档案
cp profile-template.json profile.json
# 用编辑器修改 profile.json,填入你的观影偏好

配置

用户偏好档案(profile.json)

复制模板后按以下说明填写:

{
  "_description": "我的观影偏好档案",
  "updated": "YYYY-MM-DD",

  // 已喜欢的电影——用于 AI 学习你的口味
  // 每部需包含:片名、上映日期、类型、主演、导演、产地、喜欢原因、特征标签
  "liked_movies": [
    {
      "nm": "电影名称",
      "rt": "上映日期",
      "cat": "类型(如:动作,科幻,惊悚)",
      "star": "主演",
      "dir": "导演",
      "src": "制片国家/地区",
      "sc": null,
      "reason": "你为什么喜欢这部电影",
      "traits": ["特征1", "特征2"]
    }
  ],

  // 想看但还没看的电影——用于与新片交叉比对
  // 结构同上,可不填 reason/traits
  "want_to_watch": [
    {
      "nm": "电影名称",
      "rt": "上映日期",
      "cat": "类型",
      "star": "主演"
    }
  ],

  // 核心偏好——定义你的口味骨架
  "core_traits": {
    "genre_affinity": {
      "动作": "你对动作类型的感觉——不是纯打斗,而是动作驱动叙事?还是爆米花爽片?",
      "科幻": "偏好硬科幻/高概念设定,还是软科幻/科幻背景的爱情/剧情?",
      "悬疑/惊悚": "接受度如何?偏好与其他类型混搭还是纯悬疑?",
      "武侠/奇幻": "对强世界观、架空设定有偏好吗?",
      "动画": "是否接受动画电影?偏好什么类型的动画?"
    },
    "ip_affinity": "对 IP 改编(漫画/小说/游戏/翻拍)的偏好程度:极高/中等/无所谓/排斥",
    "style_preferences": [
      "你喜欢的风格类型(高概念、类型混搭、暴力美学等)",
      "多写几条让 AI 更了解你"
    ],
    "weak_signals": [
      "你明确不看的类型(纯爱、文艺、慢节奏、恐怖等)",
      "这些信号会让 AI 降级或排除相应电影"
    ]
  },

  // 推荐规则——定义排序逻辑
  "recommendation_rules": {
    "priority_logic": "用一句话描述优先级:匹配越多核心 trait 排序越高,什么组合是最高优先,什么组合应该降级",
    "boost_keywords": ["关键词1", "关键词2"],
    "downgrade_keywords": ["关键词3", "关键词4"],
    "exclude_keywords": []
  }
}

提示liked_movies 越多越好(建议 5-10 部),AI 的推荐会越精准。如果刚开始用,可以先填 2-3 部。

Cron 设置

在 OpenClaw 中创建 cron job,每周一和周五上午推送:

{
  "name": "猫眼电影推荐(周一周五)",
  "schedule": {"kind": "cron", "expr": "40 8 * * 1,5", "tz": "Asia/Shanghai"},
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "timeoutSeconds": 180,
    "lightContext": true,
    "message": "执行猫眼电影周报:先运行 python3 skills/movie-rec-personal-cn/scripts/maoyan_movies.py 采集最新电影数据。然后读取 profile.json(如不存在则使用默认偏好),基于 core_traits 和 recommendation_rules 为每部未看过的电影打分排序。输出结构化周报(🎯 强烈推荐 / 👍 值得关注 / 👀 可观望),推送到飞书。如果 want_to_watch 里有电影撞上正在热映列表,开头醒目提醒。"
  },
  "delivery": {"mode": "announce", "channel": "feishu", "to": "user:your_open_id"}
}

推荐时段

  • 每周一 08:40(新片首周上映提醒)
  • 每周五 08:40(周末观影指南)

使用示例

手动触发一次推荐

直接在对话中说:

帮我做一期猫眼电影周报

AI 会:

  1. 运行 python3 scripts/maoyan_movies.py 采集最新数据
  2. 读取 profile.json 了解你的偏好
  3. 分析匹配,生成推荐周报
  4. 推送到飞书

查看原始数据

# 全量 JSON(格式化)
python3 scripts/maoyan_movies.py

# 紧凑 JSON(一行)
python3 scripts/maoyan_movies.py --compact

更新偏好档案

直接在对话中说:

我刚才看了《流浪地球3》,感觉很不错,帮我更新到观影偏好里

AI 会更新 profile.jsonliked_movies 数组。

注意事项

  • 脚本请求猫眼 API 时内置 0.3-0.5s 随机延迟,全量抓取约需 30-120 秒(取决于当前上映电影数量)
  • 猫眼 API 返回的「想看人数」是用户标记「想看」的累计值,可辅助判断热度
  • profile.jsonliked_movies 不需要实时同步猫眼评分——重要的是你为什么喜欢,不是别人怎么打分
  • 如果某部电影详情接口失败,脚本会跳过详情但保留基本信息(片名、类型、上映日期等)

文件结构

movie-rec-personal-cn/
├── SKILL.md                  # 本文件
├── README.md                 # 详细使用说明(中文)
├── profile-template.json     # 用户偏好档案模板
├── profile.json              # 你的个人偏好档案(从模板复制后填写,不提交到 git)
└── scripts/
    └── maoyan_movies.py      # 猫眼电影数据采集脚本

版本历史

共 2 个版本

  • v1.0.2 当前
    2026-05-25 17:04 安全 安全
  • v1.0.0
    2026-05-21 14:22 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Tavily 搜索

jacky1n7
通过 Tavily API 进行网页搜索(Brave 替代方案)。当用户要求搜索网页、查找来源或链接,且 Brave 网页搜索不可用时使用。
★ 276 📥 101,309
it-ops-security

Codex Reset Radar

advnljs
通过 codex-reset-radar.pages.dev 监控 Codex 使用重置窗口。轮询 current.json,检测窗口开启/关闭、预测等级变化以及概率跳变。
★ 1 📥 372
data-analysis

AdMapix

fly0pants
AdMapix 原始数据层,提供广告创意、应用、排名、下载/收入及市场元数据。返回 AdMapix API 的结构化 JSON;调用方...
★ 297 📥 142,602