Media Cluster – 社交平台关键词爬取与总结
路径约定:文中 {baseDir} 表示本技能所在目录(media-cluster 技能根目录)。Agent 执行命令时需将 {baseDir} 替换为实际路径。
基于 MediaCrawler 按「搜索关键词」爬取社交平台内容,汇总有哪些内容,并生成报告与简洁版语音总结。爬虫结果保存在 {baseDir}/MediaCrawler/data/ 下。
使用者一句话指令(仅文本输入)
使用者只需输入一句自然语言,例如:
- - 「帮我爬一下小红书关键词比特币,并总结」
- 「搜一下抖音上关于 AI 的内容并出报告」
- 「微博搜“编程副业”爬取并语音总结」
Agent 收到此类请求后,应自动完成全流程(无需用户再执行任何命令):
- 1. 首次执行时下载 MediaCrawler:若
{baseDir}/MediaCrawler 目录不存在,则先执行 {baseDir}/scripts/ensure_mediacrawler.sh 或手动 git clone https://github.com/NanmiCoder/MediaCrawler.git {baseDir}/MediaCrawler(将 {baseDir} 换为实际路径),然后再进行后续步骤。 - 解析:从用户文本中识别平台(小红书/xhs、抖音/dy、微博/wb、B站/bili、快手/ks、贴吧/tieba、知乎/zhihu)和搜索关键词;若未指明平台则默认小红书(xhs)。
- 环境:若尚未配置,先执行
scripts/setup_env.sh(或等价 conda create + pip install + playwright install);否则跳过。 - 爬取:在
MediaCrawler 目录下执行 python main.py --platform <平台> --lt qrcode --type search --keywords "<关键词>" --save_data_option jsonl;提示用户首次需扫码登录。 - 报告与语音:爬取结束后执行
scripts/summarize_and_voice.py,带上对应的 --platform、--keyword,并加上 --voice 生成简洁版语音总结;将报告路径与语音稿内容回复给用户。
使用者只需一次文本输入,其余由 Agent 按上述步骤完成。
前置条件
- - Conda:用于创建并激活
media-cluster 环境。 - Node.js:>= 16(爬抖音、知乎时需要)。
- 工具已位于:
{baseDir}/MediaCrawler。 - 语音总结(TTS):需在环境变量中配置
SENSEAUDIO_API_KEY(接口密钥);可选 SENSEAUDIO_VOICE_ID。
0. 首次执行:下载 MediaCrawler
若本地尚未有 MediaCrawler 项目,需先从 GitHub 拉取到技能目录下。执行时将 {baseDir} 替换为实际技能根路径:
CODEBLOCK0
完成后目录结构为:{baseDir}/MediaCrawler/(含 main.py、config/、requirements.txt 等)。之后再执行环境配置与爬取。
1. 环境配置(首次或环境异常时执行)
以下命令适用于所有平台(macOS / Windows / Linux),在终端或命令提示符中执行:
CODEBLOCK1
macOS/Linux 也可直接执行技能提供的脚本(将 {baseDir} 换为实际路径):
CODEBLOCK2
2. 爬取流程
2.1 确定参数
- - 平台
--platform:xhs(小红书)| dy(抖音)| ks(快手)| bili(B站)| wb(微博)| tieba(贴吧)| zhihu(知乎)。 - 搜索关键词
--keywords:一个或多个,英文逗号分隔,如 比特币 或 比特币,以太坊。 - 爬取类型:本技能使用关键词搜索,即
--type search。 - 登录方式:默认
--lt qrcode(扫码登录);首次运行会弹出浏览器,用对应 APP 扫码。
2.2 执行爬虫
先激活环境,再进入 {baseDir}/MediaCrawler 运行:
CODEBLOCK3
数据默认写入 MediaCrawler 下的 data/,即 {baseDir}/MediaCrawler/data/<platform>/。如需指定绝对路径,可加 --save_data_path <绝对路径>。
2.3 可选参数(按需)
- -
--save_data_option jsonl:推荐 jsonl,便于后续解析。 - INLINECODE42 :是否爬评论,默认从
config/base_config.py 读取。 - INLINECODE44 :自定义数据目录;不填则用默认
data/。
3. 报告与语音总结
爬取完成后:
- 1. 读数据:从
{baseDir}/MediaCrawler/data/<platform>/ 下读取最新生成的 jsonl(或 json/csv,视 --save_data_option)。 - 生成报告:
- 统计条数、关键词/平台、时间范围。
- 按主题/类型归纳「有哪些内容」(标题、摘要、作者、互动数等)。
- 小红书笔记示例字段:
note_id,
type,
title,
desc,
user_id,
nickname,
liked_count,
collected_count,
comment_count,
share_count,
ip_location,
tag_list,
note_url,
source_keyword 等。
- 3. 输出:
- 写一份
Markdown 报告 到技能目录或用户指定路径(如
media_cluster_report_<关键词>_<日期>.md)。
- 生成一份
简洁版语音稿(3–5 句话):概括平台、关键词、条数、主要几类内容。
-
语音输出:使用
SenseAudio API 将语音稿合成并保存为 mp3(可选播放)。需在环境变量中配置
SENSEAUDIO_API_KEY(在
接口密钥 创建);可选
SENSEAUDIO_VOICE_ID。
报告结构建议:
CODEBLOCK4
4. 小红书结果示例(JSON 单条)
爬虫得到的小红书笔记可能形如:
CODEBLOCK5
总结时重点用:title, desc, nickname, liked_count, comment_count, source_keyword。
5. 脚本说明
| 脚本 | 用途 |
|---|
| INLINECODE71 | (macOS/Linux)首次执行时若不存在 MediaCrawler 目录,则从 GitHub 克隆到技能目录下;Windows 请直接 git clone。 |
| INLINECODE74 |
(macOS/Linux)创建 conda 环境、安装依赖与 Playwright;Windows 请按「环境配置」小节手动执行 conda/pip 命令。 |
|
scripts/summarize_and_voice.py | 读取
MediaCrawler/data/ 下数据,生成 Markdown 报告与简短语音稿,并用 SenseAudio API 合成语音(需环境变量
SENSEAUDIO_API_KEY)。 |
调用示例(将 {baseDir} 换为实际路径):
CODEBLOCK6
6. 注意事项
- - 仅用于学习与研究,遵守平台条款与法律法规。
- 首次运行需扫码登录;登录态可被缓存,后续可减少扫码。
- 若遇反爬或验证码,可尝试关闭无头模式(在
config/base_config.py 中设置 HEADLESS = False)。 - 抖音/知乎需本机已安装 Node.js >= 16。
- 语音总结:TTS 使用 SenseAudio API,需在环境变量中配置
SENSEAUDIO_API_KEY(在 senseaudio.cn 接口密钥 创建);可选 SENSEAUDIO_VOICE_ID。API 文档见 。
7. 参考
Media Cluster – 社交平台关键词爬取与总结
路径约定:文中 {baseDir} 表示本技能所在目录(media-cluster 技能根目录)。Agent 执行命令时需将 {baseDir} 替换为实际路径。
基于 MediaCrawler 按「搜索关键词」爬取社交平台内容,汇总有哪些内容,并生成报告与简洁版语音总结。爬虫结果保存在 {baseDir}/MediaCrawler/data/ 下。
使用者一句话指令(仅文本输入)
使用者只需输入一句自然语言,例如:
- - 「帮我爬一下小红书关键词比特币,并总结」
- 「搜一下抖音上关于 AI 的内容并出报告」
- 「微博搜“编程副业”爬取并语音总结」
Agent 收到此类请求后,应自动完成全流程(无需用户再执行任何命令):
- 1. 首次执行时下载 MediaCrawler:若 {baseDir}/MediaCrawler 目录不存在,则先执行 {baseDir}/scripts/ensuremediacrawler.sh 或手动 git clone https://github.com/NanmiCoder/MediaCrawler.git {baseDir}/MediaCrawler(将 {baseDir} 换为实际路径),然后再进行后续步骤。
- 解析:从用户文本中识别平台(小红书/xhs、抖音/dy、微博/wb、B站/bili、快手/ks、贴吧/tieba、知乎/zhihu)和搜索关键词;若未指明平台则默认小红书(xhs)。
- 环境:若尚未配置,先执行 scripts/setupenv.sh(或等价 conda create + pip install + playwright install);否则跳过。
- 爬取:在 MediaCrawler 目录下执行 python main.py --platform <平台> --lt qrcode --type search --keywords <关键词> --savedataoption jsonl;提示用户首次需扫码登录。
- 报告与语音:爬取结束后执行 scripts/summarizeandvoice.py,带上对应的 --platform、--keyword,并加上 --voice 生成简洁版语音总结;将报告路径与语音稿内容回复给用户。
使用者只需一次文本输入,其余由 Agent 按上述步骤完成。
前置条件
- - Conda:用于创建并激活 media-cluster 环境。
- Node.js:>= 16(爬抖音、知乎时需要)。
- 工具已位于:{baseDir}/MediaCrawler。
- 语音总结(TTS):需在环境变量中配置 SENSEAUDIOAPIKEY(接口密钥);可选 SENSEAUDIOVOICE_ID。
0. 首次执行:下载 MediaCrawler
若本地尚未有 MediaCrawler 项目,需先从 GitHub 拉取到技能目录下。执行时将 {baseDir} 替换为实际技能根路径:
bash
macOS/Linux:使用脚本(推荐,会检测目录是否存在再克隆)
bash {baseDir}/scripts/ensure_mediacrawler.sh
所有平台(macOS/Windows/Linux):手动克隆
git clone https://github.com/NanmiCoder/MediaCrawler.git {baseDir}/MediaCrawler
完成后目录结构为:{baseDir}/MediaCrawler/(含 main.py、config/、requirements.txt 等)。之后再执行环境配置与爬取。
1. 环境配置(首次或环境异常时执行)
以下命令适用于所有平台(macOS / Windows / Linux),在终端或命令提示符中执行:
bash
创建 conda 环境(Python 3.11)
conda create -n media-cluster python=3.11 -y
激活环境
conda activate media-cluster
进入 MediaCrawler 目录
cd {baseDir}/MediaCrawler
安装依赖
pip install -r requirements.txt
安装 Playwright 浏览器驱动
playwright install
macOS/Linux 也可直接执行技能提供的脚本(将 {baseDir} 换为实际路径):
bash
bash {baseDir}/scripts/setup_env.sh
2. 爬取流程
2.1 确定参数
- - 平台 --platform:xhs(小红书)| dy(抖音)| ks(快手)| bili(B站)| wb(微博)| tieba(贴吧)| zhihu(知乎)。
- 搜索关键词 --keywords:一个或多个,英文逗号分隔,如 比特币 或 比特币,以太坊。
- 爬取类型:本技能使用关键词搜索,即 --type search。
- 登录方式:默认 --lt qrcode(扫码登录);首次运行会弹出浏览器,用对应 APP 扫码。
2.2 执行爬虫
先激活环境,再进入 {baseDir}/MediaCrawler 运行:
bash
conda activate media-cluster
cd {baseDir}/MediaCrawler
示例:小红书搜索「比特币」
python main.py --platform xhs --lt qrcode --type search --keywords 比特币 --save
dataoption jsonl
数据默认写入 MediaCrawler 下的 data/,即 {baseDir}/MediaCrawler/data//。如需指定绝对路径,可加 --savedatapath <绝对路径>。
2.3 可选参数(按需)
- - --savedataoption jsonl:推荐 jsonl,便于后续解析。
- --getcomment yes/no:是否爬评论,默认从 config/baseconfig.py 读取。
- --savedatapath :自定义数据目录;不填则用默认 data/。
3. 报告与语音总结
爬取完成后:
- 1. 读数据:从 {baseDir}/MediaCrawler/data// 下读取最新生成的 jsonl(或 json/csv,视 --savedataoption)。
- 生成报告:
- 统计条数、关键词/平台、时间范围。
- 按主题/类型归纳「有哪些内容」(标题、摘要、作者、互动数等)。
- 小红书笔记示例字段:note
id, type, title, desc, userid, nickname, liked
count, collectedcount, comment
count, sharecount, ip
location, taglist, note
url, sourcekeyword 等。
- 3. 输出:
- 写一份
Markdown 报告 到技能目录或用户指定路径(如 media
clusterreport
<关键词><日期>.md)。
- 生成一份
简洁版语音稿(3–5 句话):概括平台、关键词、条数、主要几类内容。
-
语音输出:使用
SenseAudio API 将语音稿合成并保存为 mp3(可选播放)。需在环境变量中配置 SENSEAUDIOAPI
KEY(在 接口密钥 创建);可选 SENSEAUDIOVOICEID。
报告结构建议:
markdown
媒体爬取报告:<关键词>
- - 平台:
- 关键词:
- 爬取条数:
- 数据时间:<时间范围>
内容概览
(按主题/类型归纳,列出代表性标题与摘要)
明细(可选)
(表格或列表:标题、作者、互动、链接等)
4. 小红书结果示例(JSON 单条)
爬虫得到的小红书笔记可能形如:
json
{
note_id: 68f0ae5b0000000003020914,
type: normal,
title: 原以为比特币绝对安全呢,
desc: 比特币不是去中心化吗?美国司法部是怎么没收...,
video_url: ,
time: 1760603739000,
user_id: 60337046000000000101fd66,
nickname: 贝格尔号,
liked_count: 1308,
collected_count: 963,
comment_count: 664,
share_count: 573,
tag_list: ,
note_url: https://www.xiaohongshu.com/explore/...,
source_keyword: 比特币
}
总结时重点用:title, desc, nickname, liked_count, comment