A股数据采集这事儿,我干了三年。踩过的坑,真是数都数不清,说多了都是泪。
最后我下定决心,把这些坑打包成一个工具包,直接免费丢到GitHub上,谁爱用谁用。
这个项目叫 a-stock-data。上线才两周,就从零冲到了1900多颗星,被Fork了超过420次。先把结论撂这,这玩意儿值得关注,就一个原因。
A股那十三个乱七八糟的数据源,它全用HTTP直连搞定,一个第三方数据封装包都没用。
你平时用akshare的时候,底层调的那些接口,其实分散在东财、通达信和同花顺身上。但这些接口本身压根没公开文档。akshare呢,相当于用一层"打包服务"把混乱给藏起来了。结果呢?源站一改版,akshare就跟着崩。你代码里那个 ak.stock_zh_a_hist 突然给你返回空数据,你跑GitHub上一看,一堆人在issue区喊"又挂了"。作者一个人要维护几百个接口,修一个Bug可能就得等两周。
我自己就掉进过这个坑里。去年写一篇对比分析文章,需要拉几只股票的日K数据。好家伙,akshare接口返回的格式说变就变——DataFrame的列名从"日期"突然改成了"trade_date"。我写的解析代码全废了。去GitHub一看,issue区早有人报了,但修复得排队等。我等了整整三天,最后实在没办法,自己手动改了列名映射才搞定。
所以,a-stock-data的V3版本,直接把这层"中间商"给砍掉了。
注意,不是改良,是直接砍掉。从V1到V2,这项目也依赖akshare。作者Simon林自己就是akshare的重度用户。用久了才发现,那层封装本身就是问题的根源。一个人维护几百个接口,底层源站又没公开API,随时可能改版。中间环节越多,故障传导的链条就越长,一个地方出问题,整个链条都跟着完蛋。
所以V3做了一个很狠的决定,全部直连。13个数据源,28个端点,7层架构,全部走HTTP直接对接东财、通达信,还有腾讯财经。百度股市通、新浪和巨潮也直接连。只有mootdx保留了TCP协议——通达信的二进制协议,实在没法用HTTP替代。除此之外,全是纯HTTP请求。
打动我的,是它的定位非常特别。它不是给程序员用的量化工具,而是给AI编程助手用的。
重点就是这个 SKILL.md 文件。它就是一个结构化的Markdown,里面嵌着Python代码。你把它放到 ~/.claude/skills/a-stock-data/ 目录下,启动Claude Code,说一句"帮我看看688017的估值",它就能自动激活干活。Codex、OpenClaw也一样,贴进系统提示词就行。
这个思路挺有意思。以前你用Python写量化脚本,得先 import akshare,得搞清楚参数顺序,还得去查文档确认 adjust 参数是 qfq 还是 hfq。现在你只要跟AI说一句人话,它帮你调接口、帮你解析数据、帮你算估值。中间那层"程序员必须掌握API细节"的认知门槛,就这么被AI给吃掉了。
我亲自试了一下,确实能用。跟Claude Code说"帮我估一下688017,给我PE、PEG、消化时间",它先拉腾讯财经的实时报价拿到PE(TTM)和PB,然后调东财的一致预期EPS接口拿机构预测,最后算出前向PE、PEG、PE消化年数。整个过程大概30秒。以前你写这段代码,怎么也得半天功夫吧?
那tushare呢?它倒是稳定,但要付费。积分制,500积分以上才能用分钟线和一些高级接口。新用户注册是0积分,想攒积分?要么贡献数据,要么直接花钱。接口覆盖面也窄,很多东财、同花顺的接口,tushare根本没有。tushare是个好产品,但它的定位是"给专业量化用户的基础数据服务",不是"给AI编程助手的全栈数据工具"。
那baostock呢?免费,但数据更新慢,分钟线支持弱,接口覆盖面更窄。适合学术研究拉历史数据,不适合搞实时行情和信号追踪。
所以,a-stock-data一出来,我觉得这事儿定位非常精准。它既不是akshare的升级版,也不是tushare的免费替代品。它是一个全新的品类——AI编程助手的数据基础设施。
以前散户想做个股调研,得学会用Python,得学会调接口,得学会解析数据,得学会写分析逻辑。这四层认知门槛,直接把90%的散户挡在门外了。现在呢?你只要会说一句"帮我看看这只股票的估值和资金流向",AI就能把这四层门槛全部搞定。
当然,这事儿也有争议。
主要争议点在于合规性。a-stock-data直连的那些接口——东财、同花顺、百度股市通——没有一个官方的公开API。东财的datacenter-web接口加了 X-Request-Token 签名验证,Simon林是逆向了前端JS混淆代码里的签名算法(MD5(timestamp+secret+params)),secret_key 还得定期跟进更换。同花顺的iwencai就更敏感了,问财本身就是同花顺的自然语言选股产品,a-stock-data用 X-Claw 鉴权去调它的搜索接口,这直接绕过了问财的使用协议。
说实话,我不完全站Simon林这边。逆向非公开接口,确实有法律风险。国内虽然没有美国那种CFAA,但反不正当竞争法和网络安全法的相关条款确实存在。但我也理解实务派的立场,akshare封装的那层壳,其实也是逆向的,只不过它把逆向藏在封装里面,用户感觉不到底层在干什么。akshare坏了你得等作者修,a-stock-data坏了你自己能修——因为你能看到底层的每个URL和参数。这是两种不同的"依赖风险",不是简单的谁对谁错。
我担心的点也在这儿。1900星420Fork的热度,不代表长期可持续性。Simon林一个人在干这事儿。社区贡献者目前看起来不多——3个Pull Request、2个Issue——不像是活跃社区的样子。如果源站频繁变更接口,维护者跟不上,这个项目也会走akshare的老路。
我自己的判断是这样,a-stock-data值得用,但值得带着清醒的认知去用。直连HTTP让你能看到底层的每个细节,AI编程助手能直接调起来——这是实实在在的进步。但长期来看,任何一个依赖逆向非公开接口的项目,都有被源站封杀或变更击垮的风险。
akshare的坑在中间层,a-stock-data的坑在源站。位置换了,但坑还在。
最后聊个更远的话题。AI编程助手正在从"帮你写代码"进化到"帮你做决策"。以前你让Claude Code帮你写个Python脚本拉数据,它只会生成代码让你自己跑。现在有了 SKILL.md,它可以直接调端点拿数据,做计算,输出结论。这中间跳过了什么?跳过了"人必须理解API才能获取数据"这一层。获取信息的技术门槛被AI吃掉了,留给人的是判断门槛。
我的态度很简单,先试试看,好用就用。但别把一个免费开源项目当成你唯一的基础设施支柱。akshare已经给我们上过一课了——任何单点依赖都有断裂的风险。a-stock-data的价值在于它的直连架构思路和适配AI的形态设计,而不在于它能不能永远稳定运行。
这种"把分散在十几个地方的混乱数据,整合成一个AI直接能用的工具"的思路,是对的。方向对了,具体实现可以慢慢迭代。1900星说明,很多人也在想这件事。
