写了个单文件 Python 脚本,把财联社/东财/同花顺/雪球转成 RSS

8 阅读2分钟

平时看财经快讯要在几个 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