用数据玩炉石
快速收集和分析炉石传说的卡牌及卡组数据
hsdata 使用 Python 3 编写,引用了 requests 和 scrapy 两个模块,理论上可以在所有支持这两个模块的系统环境中运行。
推荐使用 pip 安装
pip3 install -U hsdata
import hsdata
# 获取卡组数据
decks = hsdata.HSBoxDecks()
# 若未找到本地数据,会自动从网络获取
print('从炉石盒子获取到', len(decks), '个卡组数据!')
# 更新卡组数据
# decks.update()
# 搜索卡组
found = decks.search(
career='萨满',
mode=hsdata.MODE_STANDARD,
min_games=10000,
win_rate_top_n=5)
print('其中5个胜率最高的萨满卡组:')
for deck in found:
print('{}: {} 场, {:.2%} 胜'.format(
deck.name, deck.games, deck.win_rate))
# 查看卡组中的卡牌
print('其中第一个卡组用了这些卡牌')
print(found[0].cards)
运行结果类似这样
从炉石盒子获取到 1574 个卡组数据!
其中5个胜率最高的萨满卡组:
【黄金赛冠军】OmegaZero中速萨: 124830 场, 63.47% 胜
【欧服登顶】Janos 中速萨: 172444 场, 63.02% 胜
【EULC冠军】Pavel中速萨: 61187 场, 62.73% 胜
【欧服前50】Toymachine中速萨: 41754 场, 60.95% 胜
【外服登顶】Ownerism 中速萨: 152966 场, 60.94% 胜其中第一个卡组用了这些卡牌
Counter({<Card: 坑道穴居人 (LOE_018)>: 2,
<Card: 大漩涡传送门 (KAR_073)>: 2,
<Card: 碧蓝幼龙 (EX1_284)>: 2,
<Card: 幽灵之爪 (KAR_063)>: 2,
<Card: 火元素 (CS2_042)>: 2,
<Card: 巴内斯 (KAR_114)>: 1,
<Card: 银色侍从 (EX1_008)>: 1,
<Card: 血法师萨尔诺斯 (EX1_012)>: 1,
<Card: 野性狼魂 (EX1_248)>: 2,
<Card: 法力之潮图腾 (EX1_575)>: 2,
<Card: 深渊魔物 (OG_028)>: 2,
<Card: 闪电箭 (EX1_238)>: 2,
<Card: 雷霆崖勇士 (AT_049)>: 2,
<Card: 火舌图腾 (EX1_565)>: 2,
<Card: 图腾魔像 (AT_052)>: 2,
<Card: 闪电风暴 (EX1_259)>: 1,
<Card: 妖术 (EX1_246)>: 2})
以上只是个帮助入门的例子,发挥想象力,用它来探索更多吧!
目前 hsdata 采用了以下数据来源,这些数据的版权为各数据源所有。
- 卡牌数据
- 卡组数据
许可协议: Apache License, Version 2.0