百度热搜爬虫
定时爬取 百度实时热搜 榜单,支持重试、日志与 JSON 持久化;按年月目录组织,同一日多次运行会 追加 历史热度记录。
特性
- 爬取百度 realtime 热搜(约 50 条)
- 网络失败 自动重试(可配置次数与间隔)
- 结构化 logging 输出
- 面向对象
BaiduHotSearchCrawler,便于扩展其他榜单 - 输出路径:
年份/YYYYMMDD 百度实时热点.json
环境要求
- Python 3
- 依赖:
requests、beautifulsoup4、lxml
安装
bash
git clone https://github.com/wangqiqi/baidu-top-crawler.git
cd baidu-top-crawler
pip install -r requirements.txt快速开始
bash
python crawl_baidu_top.py典型日志:
text
INFO - 开始爬取百度realtime榜单...
INFO - 成功爬取 50 条热搜数据
INFO - 成功保存 50 条记录到: 2025/20250115 百度实时热点.json输出格式
json
{
"热搜标题1": [
{
"time": "2025-01-15T10:30:01+08:00",
"hot_index": "999999"
}
]
}同一标题多次抓取会在数组中 追加 时间点与热度,便于做趋势分析。
配置说明
| 常量 | 默认 | 说明 |
|---|---|---|
REQUEST_TIMEOUT | 10 | 请求超时(秒) |
MAX_RETRIES | 3 | 最大重试次数 |
RETRY_DELAY | 2 | 重试间隔(秒) |
代码中自定义实例:
python
crawler = BaiduHotSearchCrawler(timeout=15, max_retries=5)项目结构
baidu-top-crawler/
├── crawl_baidu_top.py # 主程序
├── requirements.txt
├── README.md
└── 2025/ # 按年归档的数据
└── 20250115 百度实时热点.json常见问题
Q: 如何定时跑?
可用 cron / systemd / GitHub Actions 包装 python crawl_baidu_top.py;仓库本身聚焦单次爬虫逻辑。
Q: 页面结构变了怎么办?
需更新解析选择器;建议关注 Issues 或 fork 自维护。




