豆瓣小组时效热帖抓取 (Douban Group Hot Topics)
抓取豆瓣小组的时效性热门话题,零依赖(仅 Python 标准库)、无需 API Key、无需登录。
适用场景
- 追豆瓣小组当下的热议话题(全站"讨论精选"即时效热帖流)
- 监控指定小组的最新/热门讨论
- 为热点内容自动化 Q&A 准备系统提供豆瓣侧数据源(支持 JSON 输出)
快速开始
# 讨论精选(全站时效热帖,默认,前 20 条)
python3 scripts/douban_group_hot.py
# 只看前 10 条,按喜欢数排序
python3 scripts/douban_group_hot.py --top 10 --sort likes
# 热门话题页 / 热门小组列表
python3 scripts/douban_group_hot.py --type hot
python3 scripts/douban_group_hot.py --type group
# 抓取指定小组的讨论列表(含作者/回复数/最后回复时间)
python3 scripts/douban_group_hot.py --group 205905
# JSON 输出并落盘,便于接下游系统(如飞书 pi agent Q&A 库)
python3 scripts/douban_group_hot.py --top 30 --json --output hot.json
# 关键词站内搜索(搜索全站小组讨论,★=标题精确命中;可多词分别搜索)
python3 scripts/douban_group_search.py "御廷谣" "少年时代2" --top 15
python3 scripts/douban_group_search.py "少时2" --json --output search.json
输出示例(文本模式)
🔥 豆瓣 讨论精选(20 条) 来源: https://www.douban.com/group/explore
1. [2245喜欢] 把我朋友的话分享给所有迷茫焦虑痛苦的女性
来自: 平凡女性生存手册小组 | 昨天10:54 | https://www.douban.com/group/topic/497433777/
参数说明
| 参数 | 说明 |
|------|------|
| --type explore\|hot\|group | 页面类型,默认 explore(讨论精选) |
| --group <gid> | 抓指定小组讨论列表(如 205905) |
| --top N | 只输出前 N 条,默认 20 |
| --sort likes\|replies\|time | 本地排序(explore 用 likes;group 用 replies) |
| --json | JSON 结构化输出 |
| --output FILE | 写入文件 |
douban_group_search.py 参数:
| 参数 | 说明 |
|------|------|
| keywords | 一个或多个搜索关键词(依次搜索) |
| --top N | 每个关键词输出前 N 条,默认 15 |
| --json / --output | JSON 输出 / 落盘(含 exact 精确命中标记) |
数据来源
豆瓣小组公开页面(无需登录):
- 讨论精选:
https://www.douban.com/group/explore - 热门话题:
https://www.douban.com/group/explore?type=hot - 热门小组:
https://www.douban.com/group/explore?type=group - 小组讨论:
https://www.douban.com/group/{gid}/discussion?start=0 - 讨论站内搜索:
https://www.douban.com/group/search?cat=1013&q={关键词}
注意事项
- 豆瓣可能有反爬限流,抓取频繁时建议间隔 ≥ 30s;请求失败时脚本会给出可读提示
- 脚本内置了桌面浏览器 UA;如仍被拦截,可稍后重试
- 小组 ID 可从小组主页 URL 获取:
https://www.douban.com/group/{gid}/
Scan to join WeChat group