多平台热点话题抓取
用途
从多个内容平台抓取当前热点/热搜,为内容创作(公众号、小红书、视频号等)提供选题灵感。
快速开始(零依赖,开箱即用)
python3 scripts/fetch_hot.py
一条命令抓取 6 大平台(百度/头条/微博/知乎/B站/抖音)的热度前十,输出 Markdown 表格。无需安装任何依赖,下载即用。
支持的平台
| 类型 | 平台 | 依赖 | |------|------|------| | 零依赖(默认) | 百度热搜、今日头条热榜、微博热搜、知乎热榜、B站热搜、抖音热榜 | 无,纯 Python 标准库 | | 可选增强 | 小红书热榜、快手热榜 | 需安装 Playwright(见下文) |
何时使用
- 用户询问"今天有什么热点 / 热搜 / 热榜"
- 用户需要某个平台(微博、知乎、B站等)的热门话题
- 用户为内容号找选题,需要按领域(AI、户外等)筛热点
零依赖抓取(默认)
python3 scripts/fetch_hot.py # 抓取全部 6 平台
python3 scripts/fetch_hot.py --platform baidu # 只抓百度热搜
python3 scripts/fetch_hot.py --limit 15 # 每个源最多 15 条
python3 scripts/fetch_hot.py --tag ai # 只保留 AI 相关热词
python3 scripts/fetch_hot.py --keyword "AI,芯片" # 按关键词过滤
python3 scripts/fetch_hot.py --json # 输出 JSON(供程序二次处理)
参数说明
| 参数 | 说明 |
|------|------|
| --platform | 逗号分隔的平台(英文 id 或中文名,如 baidu 或 百度),见 configs/platforms.json |
| --limit | 每个源最多抓取的条数,默认 10(即热度前十) |
| --tag | 预置标签:ai / outdoor,展开为 config 中的关键词组 |
| --keyword | 逗号分隔的自定义关键词,标题包含任一即保留 |
| --json | 输出 JSON 而非 Markdown |
| --insecure | 禁用 SSL 证书验证(公司代理/证书异常环境下使用) |
话题 → 文章搜索(挖内容对标)
看到热点后,可进一步搜索围绕它写的内容(文章/视频),做选题参考。
python3 scripts/fetch_articles.py --keyword "AI" # 搜头条上「AI」的内容
python3 scripts/hot_to_articles.py --top 10 # 抓热点,自动搜前10个热词的文章
python3 scripts/hot_to_articles.py --tag ai --top 5 # 只搜 AI 相关热词的文章
fetch_articles.py:单话题搜索,输出标题 + 作者 + 原文链接(当前支持头条,纯 HTTP 零依赖)hot_to_articles.py:抓热点 → 自动逐个搜对应文章,一条命令出「热搜词 → 相关内容」清单
热点标准流程(热搜 → 最火爆内容 → 最热3篇)
一条命令跑完完整流程:抓该平台前 10 热搜 → 直接抓该平台当天最火爆的内容 → 按互动数据综合评分 → 筛出最热 3 篇。
python3 scripts/hot_pipeline.py --platform 今日头条 # 头条完整流程
python3 scripts/hot_pipeline.py --platform 小红书 # 小红书完整流程
python3 scripts/hot_pipeline.py --platform 哔哩哔哩 # B站完整流程
统一标准(所有平台一致):
- ① 抓该平台前 10 条热搜
- ② 直接抓该平台当天最火爆的内容(10 篇,不按热搜词关联)
- ③ 按互动数据综合评分(阅读×0.01 + 赞×1 + 评×5 + 转×10),筛出最热 3 篇
各平台用的互动数据:头条=阅读+赞+评+转、小红书=点赞、B站=播放+弹幕。
小红书笔记搜索(拿链接做评论引流)
搜小红书上的相关笔记,输出笔记链接(标题 + 作者 + 点赞),用于拿链接去评论区引流。
python3 scripts/fetch_xhs_notes.py --keyword "徒步" # 搜「徒步」的爆款笔记(默认最热排序+500赞过滤)
python3 scripts/fetch_xhs_notes.py --keyword "徒步" --limit 15
python3 scripts/fetch_xhs_notes.py --keyword "徒步" --min-like 2000 # 只要 2000 赞以上的爆款
python3 scripts/fetch_xhs_notes.py --keyword "徒步" --min-like 0 # 不过滤(全部笔记)
- 默认「最热排序 + 点赞≥500 过滤」,只返回高赞爆款(引流价值高)
- 需 Playwright + 登录小红书(首次扫码,登录态保存到
~/.xhs_cookies.json复用) - 注意:小红书在公司网络会被拦截,需在手机热点/家庭网络下运行
小红书 / 快手热榜(可选,需 Playwright)
小红书、快手官方接口有 JS 签名反爬,纯标准库无法绕过,因此通过 Playwright 渲染聚合站「偷渡鱼」获取,一次可抓 30 个平台的热榜(含小红书、快手、微博、抖音等)。
首次使用(一次性安装)
pip install playwright
playwright install chromium
抓取
python3 scripts/fetch_xhs.py # 抓小红书热榜(默认前十)
python3 scripts/fetch_xhs.py --platform 快手 # 抓快手热榜
python3 scripts/fetch_xhs.py --all # 一键抓全部平台的热榜
python3 scripts/fetch_xhs.py --all --limit 5 # 全部平台各抓前 5 条
python3 scripts/fetch_xhs.py --list # 仅列出所有可用平台名
python3 scripts/fetch_xhs.py --json # 输出 JSON
容错与网络环境
各平台的可达性因网络环境而异(公司/校园网关可能拦截微博、B站、GitHub 等域名)。脚本对每个源独立容错:抓取失败的源自动跳过,不影响其他源,失败原因输出到 stderr。换到无网关限制的网络(如家庭宽带)可抓到全部源。
自定义平台
编辑 configs/platforms.json 即可增删平台或调整关键词组,无需改动脚本:
sources[].enabled:设为false可临时关闭某源sources[].url:替换为可用的接口地址sources[].referer:设为对应平台域名(如https://weibo.com/),多数平台要求 Referer 匹配否则返回 403tag_keywords:按需补充ai/outdoor等标签的关键词组- 新增平台时需在
scripts/fetch_hot.py的PARSERS中补充对应解析函数
输出格式
默认输出 Markdown 分节表格,每个平台一节,含排名、热点标题、热度。--json 输出统一结构:
{
"百度热搜": [
{"title": "...", "url": "...", "hot": "..."}
]
}
已知限制
- 小红书、快手官方接口均有 JS 签名(x-s)+ 登录态反爬,需通过
fetch_xhs.py(Playwright)获取,无法纳入零依赖脚本。 - 抖音官方接口需 JS 签名(a_bogus),已通过 tophub 聚合站曲线获取热门视频榜。
- 36氪热榜接口已失效、首页对爬虫返回反爬页,未纳入脚本。
微信扫一扫