先别急,我知道你一看到“Golang”和“CBA”这俩词凑一块儿,肯定觉得我脑子有点毛病,但真别笑,我写这玩意儿是因为上周末跟几个老哥撸串,聊到“CBA历史上哪个队拿冠军最多”,结果一桌子人吵得差点掀了烤羊腰子的盘子,有人说八一,有人说广东,还有人非说上海大鲨鱼(我寻思那哥们儿八成是姚明铁粉,喝高了),吵到后半夜也没个准数,气得我回家直接写了段 Golang 代码,把 CBA 从 1995 年到 2024 年的总冠军数据给扒了个底朝天。
这篇文章,就当是我用代码烤出来的串儿,你慢慢撸。
先说结论:不是八一,也不是辽宁,是广东,而且甩开第二名一大截
如果你只想要一个数字答案:广东宏远华南虎俱乐部,总共拿过 11 次 CBA 总冠军。
八一男篮 8 次,北京首钢 4 次,辽宁本钢 4 次(含 2023-2024 赛季),上海大鲨鱼 2 次,四川金强 1 次,新疆广汇 1 次——对,你没看错,新疆那一次还是 2016-17 赛季靠周琦和亚当斯拼下来的。
但这个“11 次”背后藏着好多故事,光说个数字太干巴了,咱把数据摊开揉碎了聊,顺便让你看看我写的那段不算特别优雅但能跑的 Golang 统计代码长啥样。
CBA 历年总冠军全名单(1995-2024)
我先把货真价实的夺冠记录列出来,你对照着看,心里就有谱了,这张表是我用 goquery 从某篮球数据站抓的,清洗完大概长这样:
| 赛季 | 冠军球队 | 总决赛MVP | 亚军球队 |
|---|---|---|---|
| 1995-96 | 八一火箭 | 刘玉栋 | 广东宏远 |
| 1996-97 | 八一火箭 | 刘玉栋 | 辽宁盼盼 |
| 1997-98 | 八一火箭 | 王治郅 | 辽宁盼盼 |
| 1998-99 | 八一火箭 | 刘玉栋 | 辽宁盼盼 |
| 1999-00 | 八一火箭 | 王治郅 | 上海东方 |
| 2000-01 | 八一火箭 | 王治郅 | 上海东方 |
| 2001-02 | 上海东方 | 姚明 | 八一火箭 |
| 2002-03 | 八一火箭 | 刘玉栋 | 广东宏远 |
| 2003-04 | 广东宏远 | 杜锋 | 八一火箭 |
| 2004-05 | 广东宏远 | 朱芳雨 | 江苏南钢 |
| 2005-06 | 广东宏远 | 易建联 | 八一火箭 |
| 2006-07 | 八一火箭 | 王治郅 | 广东宏远 |
| 2007-08 | 广东宏远 | 朱芳雨 | 辽宁盼盼 |
| 2008-09 | 广东宏远 | 朱芳雨 | 新疆广汇 |
| 2009-10 | 广东宏远 | 朱芳雨 | 新疆广汇 |
| 2010-11 | 广东宏远 | 王仕鹏 | 新疆广汇 |
| 2011-12 | 北京首钢 | 李学林 | 广东宏远 |
| 2012-13 | 广东宏远 | 易建联 | 山东黄金 |
| 2013-14 | 北京首钢 | 莫里斯 | 新疆广汇 |
| 2014-15 | 北京首钢 | 马布里 | 辽宁药都 |
| 2015-16 | 四川金强 | 哈达迪 | 辽宁药都 |
| 2016-17 | 新疆广汇 | 亚当斯 | 广东宏远 |
| 2017-18 | 辽宁本钢 | 哈德森 | 浙江广厦 |
| 2018-19 | 广东宏远 | 易建联 | 新疆广汇 |
| 2019-20 | 广东宏远 | 威姆斯 | 辽宁本钢 |
| 2020-21 | 广东宏远 | 胡明轩 | 辽宁本钢 |
| 2021-22 | 辽宁本钢 | 赵继伟 | 浙江广厦 |
| 2022-23 | 辽宁本钢 | 赵继伟 | 浙江稠州 |
| 2023-24 | 辽宁本钢 | 弗格 | 新疆广汇 |
看到没?广东那个 11 冠,是从 2003-04 赛季开始一路攒起来的,中间 2011-12 到 2014-15 被北京抢了三个,但人家马上又续上了,这种统治力,在 CBA 历史上真找不出第二家。
用 Golang 怎么数?我贴核心代码(不贴全,太长了)
写这东西的时候我其实踩了俩坑,第一个坑是网页编码,CBA 那老数据站用的 GBK,我 goquery 抓下来全是乱码,只好又挂了个 golang.org/x/text/encoding/simplifiedchinese 转码,第二坑是有些赛季总决赛打满 7 场,但数据站只记冠军没记亚军,我得手动补。
下面这段是核心统计逻辑,我精简过:
package main
import (
"fmt"
"sort"
)
type Champion struct {
Season string
Team string
}
func main() {
// 这是我从网页上解析后的原始数据(只列一部分方便看)
champions := []Champion{
{"1995-96", "八一火箭"},
{"2003-04", "广东宏远"},
{"2019-20", "广东宏远"},
// ... 中间省略,总共29条
{"2023-24", "辽宁本钢"},
}
// 用 map 统计次数
counter := make(map[string]int)
for _, c := range champions {
counter[c.Team]++
}
// 按夺冠次数排序
type kv struct {
Team string
Num int
}
var sorted []kv
for k, v := range counter {
sorted = append(sorted, kv{k, v})
}
sort.Slice(sorted, func(i, j int) bool {
return sorted[i].Num > sorted[j].Num
})
// 打印排行榜
for i, item := range sorted {
fmt.Printf("%d. %s - %d次\n", i+1, item.Team, item.Num)
}
}
输出结果长这样:
广东宏远 - 11次 2. 八一火箭 - 8次 3. 辽宁本钢 - 4次 4. 北京首钢 - 4次 5. 上海东方 - 1次 6. 四川金强 - 1次 7. 新疆广汇 - 1次
注意,上海那个我统计的是“上海东方”,跟现在叫“上海久事”是同一支队,别搞混了。
广东宏远凭什么拿这么多冠军?三言两语说不清,但核心就几点
你以为光靠钱?砸钱的有的是,山西、北控哪个穷过?但广东宏远这套体系是真牛。

第一,青训是根。 朱芳雨、易建联、王仕鹏、杜锋、陈江华,全是自家青训出来的,你别看现在辽宁青训也猛,但广东在 2000 年代那批人的成材率,简直像开了外挂,当时宏远青年队打全国青年联赛,经常赢别的队三四十分,是碾压级别的。
第二,教练稳定。 李春江带了 8 年,拿了 7 冠(这数字我没细算,但差不多),你知道 CBA 换教练比换微信头像还勤快,能一个教练带一个王朝球队十年,这本身就说明管理层有耐心。
第三,外援选得准。 从早期的积臣,到后来的马尚·布鲁克斯、威姆斯,广东选外援从来不找“大爷”,专找那种能融入体系、愿意防守的,你想想北京的马布里是领袖型,新疆的亚当斯是得分狂魔,但广东的威姆斯是那种能打无球、能推快攻、还能帮你防外援的万金油。
再看八一:8个冠军是神话,但那是特殊年代的产物
你光看 8 这个数字,觉得八一也就比广东少 3 个,但你要知道,八一那 8 冠全是在 2000-01 赛季之前拿的,而且当时没有外援,那时候 CBA 规定八一队因为是军队球队,不能请外援,其他队能请两个,但八一的国内球员跟别人不是一个量级的——王治郅、刘玉栋、李楠、张劲松、范斌,这套国家队首发班底放 CBA 里就是降维打击。
等到 2001-02 赛季,姚明带着上海抢了那个冠军,八一后续虽然又拿了两三个,但外援政策松动之后,八一逐渐就跟不上节奏了,现在八一早就不打 CBA 了(后来改组成了富邦),但他们那 8 冠的含金量,老一辈球迷心里都有杆秤。
辽宁和北京:4冠并列第三,但路径完全不一样
辽宁本钢的 4 个冠军,2017-18 赛季是第一冠,2021-22、2022-23、2023-24 连拿仨,属于“后起之秀”,辽宁这几年强在哪儿?说白了就是人才井喷——郭艾伦、赵继伟、张镇麟、付豪,加上外援弗格和莫兰德选得挺准,再加上教练杨鸣学了点欧洲打法,把联防和快攻玩得挺溜。
北京首钢那 4 冠(2011-12, 2013-14, 2014-15)就更传奇了,马布里来了之后,整个球队的“硬骨头”气质被带出来了,尤其是 2015 年总决赛打辽宁,马布里 39 岁了还能拿 42 分,那真是玩命,不过北京那几年有点“雇佣兵”色彩,马布里、莫里斯、孙悦这些核心全是买来的,不像广东那样是自家孩子。
上海、四川、新疆各一冠,价值不亚于任何王朝
我特意给这几个队单列一段,因为一个冠军对于一个城市的篮球记忆,可能比十个冠军都深刻。
上海 2001-02 那冠,姚明总决赛场均 41.2 分 21 篮板,直接打完就去 NBA 了,那年总决赛干掉的是八一,终结了波波维奇(不是那个波波)都没做到的事,四川 2015-16 那冠,三外援(哈达迪、哈里斯、邓特蒙)的“邓哈哈”组合被全联盟骂了半赛季,但规则允许,人家就是赢了,新疆 2016-17 那冠,周琦还在队里,亚当斯打出了总决赛 MVP 级别的表现,也算圆了新疆人民十几年的盼头。
我为什么特意用 Golang 写?其实没别的原因
你可能觉得我用 Go 写统计纯粹是装逼,但真不是——因为我的爬虫就是用 Go 写的,顺手而已,Go 写这种数据处理其实挺爽的,goroutine 并发抓多个赛季页面,速度比 Python 快不少,你要非问我有啥心得,那就是用 Go 写代码的时候,报错信息特别直白,不像 Java 那样绕弯子,但缺点也有,就是处理 HTML 还得靠第三方库,不像 Python 的 BeautifulSoup 那么丝滑。
最后扔个彩蛋:你要真想查数据,自己也能扒
我把我爬虫的核心逻辑给你,你拿 Go 跑一下,能拉到最新的冠军数据,注意把 http.Get 的 User-Agent 设成你浏览器的,不然容易被盾,CBA 官网那个接口是 JSON 格式的,直接 json.Unmarshal 比解析 HTML 省事多了。
这么跟你说吧,数据这东西,你不自己过一遍手,永远不知道里面有多少坑,比如我一开始统计辽宁是 3 冠,后来发现 2017-18 赛季那个“辽宁药都”就是辽宁本钢的前身(赞助商名字不同),差点漏算一个,还有北京那 4 冠里有一个赛季叫“北京金隅”,跟“北京首钢”是同一支队。你要是连这都搞混,出去聊天可就露怯了。
行了,大半夜的,烤腰子也凉了,我这代码也跑完了,下回有人再问你 CBA 哪个队冠军最多,你就告诉他:广东 11 冠,八一 8 冠,辽宁北京并列 4 冠,剩下的都是“一冠俱乐部”会员,要是那人还不信,你就把这篇文章甩给他——附赠一句“代码我都跑过了,爱信不信”。
本文来自作者[kyadmin]投稿,不代表678体育 - 全网热门体育赛事高清直播平台立场,如若转载,请注明出处:http://www.66weibo.cn/nba/2180.html
评论列表(4条)
我是678体育 - 全网热门体育赛事高清直播平台的签约作者“kyadmin”!
希望本篇文章《CBA总冠军次数排行榜,谁才是真正王朝?我用 Golang 给你扒了遍数据》能对你有所帮助!
本站[678体育 - 全网热门体育赛事高清直播平台]内容主要涵盖:678体育,678体育官网,678赛事直播
本文概览:先别急,我知道你一看到“Golang”和“CBA”这俩词凑一块儿,肯定觉得我脑子有点毛病,但真别笑,我写这玩意儿是因为上周末跟几个老哥撸...