by Jesseovo
last30days-cn 是一个 AI Agent 技能(Skill),能够自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分析后生成有据可查的研究报告。
# Add to your Claude Code skills
git clone https://github.com/Jesseovo/last30days-skill-cnGuides for using ai agents skills like last30days-skill-cn.
Last scanned: 5/24/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-24T07:21:54.446Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": false
}last30days-skill-cn is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Jesseovo. last30days-cn 是一个 AI Agent 技能(Skill),能够自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分析后生成有据可查的研究报告。. It has 974 GitHub stars.
Yes. last30days-skill-cn passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Jesseovo/last30days-skill-cn" and add it to your Claude Code skills directory (see the Installation section above). last30days-skill-cn ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
last30days-skill-cn is primarily written in Python. It is open-source under Jesseovo on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh last30days-skill-cn against similar tools.
No comments yet. Be the first to share your thoughts!
You are a Chinese-platform research assistant. Use this skill when the user asks for recent Chinese internet discussion, trend research, public-source evidence, or "last 30 days" coverage across Weibo, Xiaohongshu, Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu, and Toutiao.
Always ground claims in returned results. Do not invent sources, links, engagement numbers, dates, or platform sentiment. If coverage is sparse, say so clearly.
Use the skill-local scripts directory:
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --emit compact
Useful variants:
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --quick --emit compact
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --deep --emit md
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --emit html-path
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --search weibo,bilibili,zhihu --emit compact
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --as-of 2026-05-01 --emit compact
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --refresh --emit compact
python {{SKILL_DIR}}/scripts/last30days.py "{{USER_TOPIC}}" --no-cache --emit compact
python {{SKILL_DIR}}/scripts/last30days.py --diagnose
python {{SKILL_DIR}}/scripts/last30days.py --diagnose --emit json
python {{SKILL_DIR}}/scripts/last30days.py setup
--as-of YYYY-MM-DD 以指定日期为终点回溯 N 天(历史回溯);--refresh 忽略缓存并刷新结果;--no-cache 跳过缓存读写;--cache-ttl HOURS 控制缓存有效期。未指定 --search 时回退到环境变量 LAST30DAYS_DEFAULT_SEARCH,EXCLUDE_SOURCES 可排除指定源。输出中若多个平台讨论同一事件,会先给出「跨平台聚合热点」。
🌐 last30days-cn v... · 数据截至 ...; if it ends with · 缓存, mention that the evidence is cached.Sources: block. Cite sources inline with platform names and URLs from the returned evidence.--diagnose text as human-readable setup guidance; use --diagnose --emit json only when machine-readable status is needed.compact: concise Markdown evidence for the agent to synthesize.md: full Markdown report.html: complete standalone HTML report.html-path: path to the generated report.html.json: structured report data.context: reusable context snippet.path: path to last30days.context.md.The HTML report uses a Swiss/IKB visual system inspired by op7418/guizang-ppt-skill. It is intended for browser viewing, archiving, and printing, not for interactive PPT generation.
Most sources can be tried with no configuration. Optional credentials improve stability:
WEIBO_ACCESS_TOKEN=
SCRAPECREATORS_API_KEY=
ZHIHU_COOKIE=
TIKHUB_API_KEY=
DOUYIN_API_KEY=
WECHAT_API_KEY=
BAIDU_API_KEY=
BAIDU_SECRET_KEY=
Config file:
~/.config/last30days-cn/.env
Optional crawler mode:
python -m pip install playwright
python -m playwright install chromium
First-time setup helper:
python {{SKILL_DIR}}/scripts/last30days.py setup
When presenting the final answer:
This skill is for learning, research, and personal knowledge work. Use low frequency, respect platform terms and robots.txt, and avoid large-scale scraping, personal data collection, commercial collection services, or any illegal use.
🚀 30 天的研究,30 秒的结果。8 大平台。零过时信息。
last30days-cn 是一个 AI Agent 技能(Skill),能够自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分析后生成有据可查的研究报告。
🔗 本项目基于 mvanhorn/last30days-skill 进行深度本土化改造,完全面向中国用户和中文互联网平台。
🕷️ v2.0 集成 MediaCrawler 爬虫引擎思路,大幅减少 API Key 依赖。v2.1 修复百度/小红书反爬问题,XHR 拦截替代 DOM 解析,Bing 兜底搜索,已移除无效的 ScrapeCreators 小红书集成。
当前版本:v3.1.0
👤 作者 / Author: Jesse (@Jesseovo)
jieba 变为可选增强,skill 可零硬依赖运行。skills/last30days 现在是可独立安装的运行载荷。last30days.py,根目录和 Skill 载荷保持同名结构。--emit html 和 --emit html-path,可生成离线可打开的 report.html。skills/last30days/SKILL.md 损坏 symlink 导致的 npx 安装失败(见 issue #10)。--as-of 历史回溯、跨平台聚合热点、LAST30DAYS_DEFAULT_SEARCH/EXCLUDE_SOURCES 配置开关、诚实 --diagnose(实时探测)、HTML 报告 XSS 加固。scripts/ 继续保留,方便本地开发和旧路径调用;Agent Skills 安装使用 skills/last30days/scripts 下的自包含载荷。本次发布前已完成以下质检:
v3.0.0,没有额外 v3 派生 tag。last30days.py 单入口,没有额外入口文件。py -m pytest,共 176 passed。py scripts/last30days.py --diagnose 与 py skills/last30days/scripts/last30days.py --diagnose 均可正常输出平台可用性诊断。请务必仔细阅读以下内容。使用本项目即表示您同意以下所有条款。
💡 爬虫违法违规的案例频发,请务必合法合规使用。 参考:中国爬虫相关法律案例汇总
| 特性 | v1.0 | v2.0 |
|---|---|---|
| 免费可用平台数 | 4 个 | 7 个(安装 Playwright 后) |
| 需要 API Key 的平台 | 微博、小红书、抖音、微信 | 仅微信(其余可用爬虫替代) |
| 数据获取方式 | 仅 API + 公开接口 | API + 爬虫引擎 + 公开接口 |
| 安装难度 | 需配置多个 API Key | pip install playwright 即可 |
| marketplace.json | 缺少 owner 字段(Bug) | ✅ 已修复 |
| 平台 | 模块 | 数据获取方式 | 需要配置 |
|---|---|---|---|
| 🔴 微博 | weibo.py |
API / 🕷️爬虫 / 公开接口 | ✅ 爬虫模式无需配置 |
| 📕 小红书 | xiaohongshu.py |
API / 🕷️爬虫 / 公开接口 | ✅ 爬虫模式无需配置 |
| 📺 B站 | bilibili.py |
公开 API / 🕷️爬虫备用 | ✅ 无需配置 |
| 💬 知乎 | zhihu.py |
公开搜索 / 🕷️爬虫备用 | ✅ 无需配置 |
| 🎵 抖音 | douyin.py |
API / 🕷️爬虫 / 公开接口 / 搜索兜底 | ✅ 爬虫模式无需配置 |
| 💚 微信 | wechat.py |
API / 搜狗搜索 | WECHAT_API_KEY(可选) |
| 🔵 百度 | baidu.py |
公开搜索 / API | ✅ 基础搜索无需配置 |
| 📰 头条 | toutiao.py |
公开接口 / 搜索兜底 | ✅ 无需配置 |
🕷️ = 需要安装 Playwright(
pip install playwright && playwright install chromium)
npx skills add Jesseovo/last30days-skill-cn -g
将项目克隆到 Cursor 技能目录:
git clone https://github.com/Jesseovo/last30days-skill-cn.git
然后在 Cursor 中将 SKILL.md 添加为项目技能。
# 方式一:通过 Agent Skills 安装(推荐)
npx skills add Jesseovo/last30days-skill-cn -g
# 方式二:手动安装
git clone https://github.com/Jesseovo/last30days-skill-cn.git ~/.claude/skills/last30days-cn
git clone https://github.com/Jesseovo/last30days-skill-cn.git ~/.agents/skills/last30days-cn
git clone https://github.com/Jesseovo/last30days-skill-cn.git
# 在 Gemini CLI 中作为扩展加载
任何支持 Bash / Read / Write 工具的 AI Agent 都可以使用本技能。
python -m pip install jieba
jieba不是硬依赖;未安装时会自动使用 CJK bigram 回退分词,仍可运行。
python -m pip install playwright
python -m playwright install chromium
安装 Playwright 后,微博、小红书、抖音、B站(备用)、知乎(备用)均可无需 API Key 使用。
如果您希望使用 API 模式获取更稳定的数据,或需要使用微信公众号搜索:
mkdir -p ~/.config/last30days-cn
touch ~/.config/last30days-cn/.env
chmod 600 ~/.config/last30days-cn/.env
Windows(PowerShell)等价: 创建目录与空配置文件可用 New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.config\last30days-cn" 与 New-Item -ItemType File -Path "$env:USERPROFILE\.config\last30days-cn\.env" -Force。限制 .env 仅当前用户可读写可近似使用 icacls "$env:USERPROFILE\.config\last30days-cn\.env" /inheritance:r /grant:r "$($env:USERNAME):(R,W)"(与 Unix chmod 600 意图相近,权限模型不同)。
编辑 ~/.config/last30days-cn/.env,按需填入 API Key:
# ============================================
# last30days-cn v2.0 配置文件
# ============================================
# 📌 说明:所有 API Key 均为可选
# 安装 Playwright 后,大部分平台已可通过爬虫模式使用
# API Key 提供更稳定的数据获取方式
# ============================================
# 🔴 微博开放平台(可选,已有爬虫模式替代)
# 获取方式: https://open.weibo.com → 创建应用 → 获取 Access Token
WEIBO_ACCESS_TOKEN=
# 📕 小红书(可选,已有爬虫模式替代)
# 获取方式: https://scrapecreators.com → 注册 → 获取 API Key
SCRAPECREATORS_API_KEY=
# 💬 知乎 Cookie(可选,增强搜索质量)
# 获取方式: 浏览器登录知乎 → F12 → Network → 复制 Cookie 值
ZHIHU_COOKIE=
# 🎵 抖音(可选,已有爬虫模式替代)
# 获取方式: https://tikhub.io → 注册 → 获取 API Key
TIKHUB_API_KEY=
# 💚 微信公众号搜索(目前无爬虫替代,需 API Key 才能使用)
# 获取方式: 使用第三方微信搜索 API 服务商
WECHAT_API_KEY=
# 🔵 百度搜索 API(可选,公开搜索已可用)
# 获取方式: https://cloud.baidu.com → 搜索服务 → 创建应用
BAIDU_API_KEY=
BAIDU_SECRET_KEY=
python scripts/last30days.py --diagnose
将输出各平台的可用状态和爬虫引擎状态:
{
"weibo": true,
"xiaohongshu": false,
"bilibili": true,
"zhihu": true,
"douyin": true,
"wechat": false,
"baidu_api": false,
"toutiao": true,
"crawler_engine": {
"playwright_available": true,
"cached_logins": [],
"note": "安装 Playwright 后,微博/小红书/抖音/B站/知乎可无需 API Key 使用爬虫模式"
},
"note_douyin_toutiao": "抖音/头条原生接口需签名参数,常被风控;接口失败时改用公开搜索引擎兜底,仅能拿到公开链接,无真实互动数据与精确日期。"
}
python scripts/last30days.py "AI编程助手" --emit compact
python scripts/last30days.py "AI编程助手" --emit html-path
| 参数 | 说明 | 示例 |
|---|---|---|
--emit |
输出模式 | compact / json / md / context / path / html / html-path |
--quick |
快速搜索 | 更少数据源,更快速度 |
--deep |
深度搜索 | 更多数据源,更全面 |
--days N |
回溯天数 | --days 7(最近一周) |
--as-of |
历史回溯终点日期 | --as-of 2026-05-01(以该日为终点回溯 N 天) |
--search |
指定搜索源 | --search weibo,bilibili,zhihu |
--diagnose |
诊断配置 | 显示各平台可用状态 |
--timeout SECS |
全局超时秒数 | 覆盖默认全局超时 |
--save-dir DIR |
自动保存原始输出目录 | 将原始输出写入指定目录 |
--debug |
调试模式 | 输出详细日志 |
🔧 环境变量:未指定
--search时,回退到LAST30DAYS_DEFAULT_SEARCH(逗号分隔的默认源集);EXCLUDE_SOURCES可从启用集合中排除指定源。
# 🔍 搜索 AI 相关话题
python scripts/last30days.py "最新AI工具" --emit compact
# ⚡ 快速搜索,仅 B站和知乎
python scripts/last30days.py "Python教程" --quick --search bilibili,zhihu
# 📊 深度搜索并保存结果
python scripts/last30days.py "新能源汽车" --deep --save-dir ~/Documents/research
# 📋 输出 JSON 格式(适合程序处理)
python scripts/last30days.py "ChatGPT替代品" --emit json
# 🗓️ 仅搜索最近 7 天
python scripts/last30days.py "热门话题" --days 7
# 🧾 生成可离线打开的 HTML 报告
python scripts/last30days.py "具身智能" --deep --emit html-path
v2.0 采用三级自动降级策略,确保最大可用性:
优先级 1: API 模式(如配置了 API Key)
↓ 失败或未配置
优先级 2: 爬虫模式(MediaCrawler,需要 Playwright)
↓ 失败或未安装
优先级 3: 公开接口(HTTP 直接请求,无需任何配置)
↓ 仍无结果(抖音/头条/小红书/知乎)
兜底: 公开搜索引擎(Bing site: 搜索,获取公开链接)
| 平台 | API 模式 | 爬虫模式 | 公开接口 | 搜索兜底 |
|---|---|---|---|---|
| 微博 | WEIBO_ACCESS_TOKEN |
✅ Playwright | ✅ m.weibo.cn | - |
| 小红书 | MCP HTTP API(可选) | ✅ Playwright (XHR拦截) | ⚠️ 命中率低 | ✅ Bing |
| B站 | - | ✅ Playwright(备用) | ✅ 公开 API | - |
| 知乎 | ZHIHU_COOKIE(增强) |
✅ Playwright(备用) | ✅ 公开搜索 | ✅ Bing |
| 抖音 | TIKHUB_API_KEY |
✅ Playwright | ⚠️ 需签名 | ✅ Bing |
| 微信 | WECHAT_API_KEY |
- | ✅ 搜狗搜索 | - |
| 百度 | BAIDU_API_KEY |
- | ⚠️ 公开搜索可能被拦截 | ✅ Bing |
| 头条 | - | - | ⚠️ 需签名 | ✅ Bing |
⚠️ 抖音/头条原生 web 接口现在强制要求签名参数(
a_bogus/_signature),常被风控。接口失败时改用公开搜索引擎兜底,只能拿到公开链接,无真实互动数据与精确日期。
last30days-skill-cn/
├── 📄 SKILL.md # Agent 技能定义文件
├── 📄 README.md # 项目说明(中文,本文件)
├── 📄 README.en.md # 项目说明(English)
├── 📄 LICENSE # MIT 许可证
├── 📄 requirements.txt # Python 依赖
├── 📁 assets/ # README 配图
├── 📁 scripts/
│ ├── 🐍 last30days.py # 中文主入口 CLI
│ └── 📁 lib/
│ ├── crawler_bridge.py # 🆕 MediaCrawler 爬虫桥接模块
│ ├── weibo.py # 微博搜索模块
│ ├── xiaohongshu.py # 小红书搜索模块
│ ├── bilibili.py # B站搜索模块
│ ├── zhihu.py # 知乎搜索模块
│ ├── douyin.py # 抖音搜索模块
│ ├── wechat.py # 微信公众号模块
│ ├── baidu.py # 百度搜索模块
│ ├── toutiao.py # 今日头条模块
│ ├── schema.py # 数据结构定义
│ ├── score.py # 评分系统
│ ├── normalize.py # 数据标准化
│ ├── ded