平时看财经快讯要在几个 app 之间来回切,有点麻烦。干脆写了个Python工具,把这几家的数据统一转成 RSS,丢到阅读器里一起看。
功能
一个Python文件,跑起来是个本地 HTTP 服务器,支持四个源:
- 财联社电报 — 实时快讯
- 东方财富 — 7×24 快讯
- 同花顺 — 7×24 快讯
- 雪球 — 用户动态(帖子、评论、转发)
请求流程:RSS 阅读器访问本地服务 → 服务去上游公开 API 拉数据 → 转成标准 RSS 2.0 XML 返回。带 5 分钟内存缓存,同一个 feed 短时间内多次请求只拉一次上游。前三个源用的是它们网页端本身在调的公开接口,纯标准库实现,不需要装任何依赖。
雪球用了阿里云 WAF,拦住了直接请求。不管怎么伪造 User-Agent 和 Cookie,返回的都是验证页面。最后的方案是走 Chrome DevTools Protocol:用 WebSocket 连接到一个已经登录雪球的 Chrome 标签页,在浏览器上下文里执行 fetch(),拿到的数据和你在浏览器里手动打开 API 一样。相当于借用浏览器的会话身份,WAF 不会拦。
这部分需要额外装一个 websocket-client,其他三个源不需要。
用法
git clone https://github.com/yuxuan-made/china-finance-rss.git
cd china-finance-rss
python server.py
默认跑在 8053 端口,打开 http://localhost:8053/ 能看到所有可用的 feed 列表。把 URL 添加到任意 RSS 阅读器就行。配置全走环境变量:PORT 改端口,CDP_URL 指定 Chrome 调试地址,CACHE_TTL 调缓存时间。
本来就是个自用小工具,如果你也做量化、新闻监控,或者单纯想用 RSS 阅读器看财经快讯,可能用得上。
GitHub: china-finance-rss