🔥 HotNews API Service
一个基于 Flask 构建的开源新闻聚合接口平台,整合了知乎、微博、B站、少数派、V2EX 等多个网站的热门信息,可自动抓取、存入 SQLite 数据库,支持定时刷新与 Docker 部署。
✨ 项目特色
-
• 🌐 多平台热榜聚合(50+ 热门条目来源) -
• 🧠 Flask + APScheduler 定时抓取 -
• 🗓 支持 SQLite 数据持久化(表名: hotnews
) -
• ⚡ 支持并发刷新,提升爬取效率 -
• 🐳 提供 Docker 打包运行支持
📁 项目结构
Hotnews/├── api/ # 所有数据源 API 蓝图│ ├── smzdm.py│ ├── weibo.py│ ├── zhihu.py│ └── ...├── savenews.py # 数据写入 SQLite 的持久化逻辑├── refresh_all.py # 并发刷新所有接口的任务逻辑├── app.py # 主应用入口(Flask + APScheduler)├── Dockerfile # Docker 构建文件├── docker-compose.yml # Docker Compose 管理脚本├── .env # 环境变量配置(如知乎 Cookie)└── news.db # SQLite 本地数据库文件
🚀 快速启动
方式 1:本地运行
# 安装依赖pip install -r requirements.txt# 设置环境变量(.env 文件)ZHIHU_COOKIE=你的cookie# 启动应用python app.py
刷新消息接口:
GET http://127.0.0.1:5000/api/refresh_all
获取消息接口:
GET http://127.0.0.1:5000/api/hotnews
方式 2:Docker 启动
# 构建镜像docker compose build# 启动服务(端口默认为 8890)docker compose up -d
🧠 定时任务说明
通过 APScheduler 实现:
-
• 默认每小时自动执行一次 /api/refresh_all
可按需修改 app.py
中的定时配置:
scheduler.add_job(id='refresh_all_job', func=refresh_all_direct, trigger='interval', hours=1)
📦 数据库说明
使用 SQLite 数据库:news.db
数据表结构:hotnews
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🧛♂️ 相关信息
-
• 开发者:Haoyu -
• 微信:tomorrow_me- -
• 项目地址:https://github.com/HaoY-l/Hotnews-pub
原文始发于微信公众号(安全info):整合获取知乎、微博、B站、少数派、V2EX 等40+个网站的热点新闻
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论