我们把 MediaCrawler 接进 Codex,做了一套自媒体选题工作流
平时用 Codex 写文章,最容易卡住的其实不是文笔。
而是选题从哪里来?
读者到底在问什么?哪些问题看着冷门,其实大家一直在评论区里反复追问?
如果全靠我们自己刷小红书、抖音、B 站和知乎,再把内容一条条复制到表格里,时间基本都浪费在整理资料上了。
所以这次我们换了一个思路:
让 MediaCrawler 收集公开内容和评论,再把数据交给 Codex 做分析、选题和初稿。

这样 Codex 就不再是坐在那里“凭空想选题”,而是有一批真实讨论可以参考。
整个流程也很简单:
MediaCrawler 收集公开数据
→ Codex 整理读者问题
→ 建立选题库
→ 生成大纲和初稿
→ 我们补充经验、核实并发布1. MediaCrawler 能帮我们做什么?
MediaCrawler 是一个开源的多平台数据采集项目,目前支持小红书、抖音、快手、B 站、微博、贴吧和知乎。
我们可以给它一个关键词,让它整理相关公开内容和评论;也可以指定某条内容或创作者主页。
最后把结果保存成 Excel、CSV、JSON 或 JSONL,再交给 Codex 继续处理。
这就很适合我们的自媒体流程。
例如准备写“AI 写作”时,不用先拍脑袋想标题,而是先看看大家正在讨论什么:
- 不知道怎么给 AI 提要求
- 生成内容太像机器写的
- 标题有流量,正文却接不住
- 同一个选题不知道怎么做差异化
- 工具收藏很多,真正用起来还是很慢
这些问题经过归类以后,本身就是一批可以继续深挖的选题。
2. 先把项目跑起来
MediaCrawler 不是双击安装的软件,需要先准备:
- Python 3.11 或更高版本
- uv
- Node.js 16 或更高版本
- Git 和新版 Chrome
打开终端执行:
git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler
uv sync安装完成后再试一下:
uv run main.py --help能够看到命令帮助,基础环境就准备好了。
不想使用 Git,也可以在项目页面点击 Code → Download ZIP,解压以后进入文件夹执行 uv sync。
3. 让它连接 Chrome
MediaCrawler 当前默认连接电脑里已经打开的 Chrome。
在 Chrome 地址栏输入:
chrome://inspect/#remote-debugging打开 Allow remote debugging for this browser instance。
看到下面这行内容就可以了:
Server running at: 127.0.0.1:9222运行项目以后,Chrome 会弹出连接确认,点击接受即可。
我们更建议单独建立一个 Chrome 配置文件和测试账号。这样日常浏览和内容采集分开,管理起来也更清楚。
4. 设置我们要研究的关键词
打开:
config/base_config.py第一次不用改太多,主要看这几项:
PLATFORM = "xhs"
KEYWORDS = "AI写作,自媒体运营"
LOGIN_TYPE = "qrcode"
CRAWLER_TYPE = "search"
CRAWLER_MAX_NOTES_COUNT = 15
MAX_CONCURRENCY_NUM = 1
ENABLE_GET_COMMENTS = True
ENABLE_GET_SUB_COMMENTS = False多个关键词使用英文逗号分隔。
我们通常会先把数量设小一点,确认关键词和数据方向正确,再决定要不要继续。
这比一开始就追求几千条数据更实用。内容运营需要的是问题和趋势,不是单纯比谁的表格更大。
5. 运行并导出 Excel
以小红书为例,在终端执行:
uv run main.py --platform xhs --lt qrcode --type search --save_data_option excel按照提示登录以后,程序就会根据刚才设置的关键词运行,结果保存在 data 目录。
想换平台,只需要修改代号:
| 平台 | 代号 |
|---|---|
| 小红书 | xhs |
| 抖音 | dy |
| 快手 | ks |
| B 站 | bili |
| 微博 | wb |
| 贴吧 | tieba |
| 知乎 | zhihu |
如果不习惯命令行,项目还提供了 WebUI。

后端和前端分别启动:
# 终端一
uv run uvicorn api.main:app --port 8080 --reload
# 终端二
cd webui
npm install
npm run dev随后打开 http://localhost:5173/,就能在网页里设置平台和任务。
6. 接下来才是 Codex 真正发挥作用的地方
数据准备好以后,我们直接用 Codex 打开 MediaCrawler 文件夹。
这样它可以读取 data 里的 Excel、CSV 或 JSON 文件,也能把分析结果和文章继续保存在本地。
为了不让文件越用越乱,我们会先建立三个目录:
自媒体运营/
├─ 01_数据分析/
├─ 02_选题库/
└─ 03_文章草稿/然后分三步来做。
第一步:先找问题,不急着写文章
请读取 data 目录下最新的 Excel 文件。
合并意思相近的内容和评论,整理出读者反复讨论的问题、使用困难、争议点和没有得到解决的需求。
输出 10 个值得继续研究的问题,并说明:
1. 为什么值得写
2. 适合哪类读者
3. 还需要补充验证什么
保存到“自媒体运营/01_数据分析/用户问题.md”。我们不会一上来就让 Codex 写正文。
先看它找出的问题对不对,等方向确定以后再继续,返工会少很多。
第二步:把问题变成选题
根据“用户问题.md”整理 15 个原创选题。
每个选题包含:目标读者、要解决的问题、标题方向、核心观点、需要补充的资料,以及适合发布的平台。
不要照抄采集到的标题,也不要只换几个近义词。
保存到“自媒体运营/02_选题库/本期选题.md”。这一轮我们主要筛三件事:
- 这个问题是不是真的有人关心
- 我们有没有自己的经验和判断可以补充
- 能不能给读者一个明确结果
三个条件都满足,才值得进入文章阶段。
第三步:先大纲,再初稿
选择“本期选题.md”中的第 1 个选题,先生成文章大纲。
文章从一个具体使用场景开始,正文给出可执行步骤,并补充适用人群和实际限制。
不要复制原帖和评论,不要虚构亲测、数据或案例。无法确认的内容标记为“待核实”。
大纲确认后再写初稿,保存到“自媒体运营/03_文章草稿/”。这时候 Codex 给我们的不是最终成稿,而是一份有资料基础的初稿。
我们再把自己的操作经验、截图、判断和表达补进去,文章才真正属于自己。
7. 我们还会给 Codex 留一份长期规则
如果每次都重复交代写作要求,其实也挺麻烦。
所以可以在项目根目录放一个 AGENTS.md:
# 自媒体写作规则
- 数据用来发现问题,不照抄原文和标题。
- 不虚构亲测、案例、数据和用户反馈。
- 先整理问题和大纲,确认后再写正文。
- 文章要给出具体步骤、适用人群和真实限制。
- 草稿统一保存到“自媒体运营/03_文章草稿”。如果已经有固定文风,也可以把标题长度、段落习惯、禁用词和结尾格式一起写进去。
以后我们只要更换数据和选题,Codex 就能按照同一套要求继续工作。
8. 这套组合最舒服的地方
以前做内容,经常是先想标题,再到处找资料证明这个标题。
MediaCrawler 加上 Codex 以后,顺序正好反过来:
先看读者正在讨论什么,再决定我们应该写什么。
MediaCrawler 负责重复、机械的资料整理;Codex 负责归类、总结和搭建内容框架;我们负责验证、判断和最终表达。
当然,数据不用贪多,账号和个人信息也要保护好。这个项目本身只允许非商业学习研究使用,正式投入其他用途前记得先看项目许可证和平台规则。
除此之外,剩下的就是把它用进自己的内容流程。
只要选题库能持续积累,这套方法就不只是帮我们多写一篇文章,而是慢慢建立一套属于自己的内容系统。
MediaCrawler 项目地址:https://github.com/NanmiCoder/MediaCrawler
