- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
说实在的个人对游戏并没有多大的兴趣,但唯独对暴雪的Diablo系列很有感情,去年年初开始玩Diablo3,断断续续,感觉最麻烦的是选择技能,每次版本更新可能都有更优的build,这对于我这样的业余玩家来说可不是件好事,好在宏伟秘境后有了天梯,借鉴排名在前的高级玩家们build总没错,于是花了点时间写了这个脚本.
脚本只是统计了主动技能、被动技能和传奇宝石的使用情况,理论上统计其它如装备等信息也是一样简单可行的,但Diablo装备的生成机制使得统计这个没有多大意义,相同的装备属性可能各有优劣,难以比较,而且某些装备坑爹的掉率也不是你想要就能有的.
题外话,不得不说Python太适合写这类功能相对简单的脚本了,一个字:快.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
|
# -*- coding: utf-8 -*-
"""
Diablo3 排名前1000玩家英雄使用技能统计
python diablo.py help
python diablo.py [barbarian|crusader|demon-hunter|monk'|witch-doctor|wizard]
默认使用的是亚服的数据,如果需要美服或欧服,更改`_rank_page`和`_api`变量地址即可
Copyright (c) 2015 JinnLynn <eatfishlin@gmail.com>
Released under the terms of the MIT license.
"""
from
__future__
import
unicode_literals, print_function, absolute_import
import
os
import
sys
import
urllib2
import
json
import
re
__version__
=
'1.0.0'
__author__
=
'JinnLynn <eatfishlin@gmail.com>'
__license__
=
'The MIT License'
__copyright__
=
'Copyright 2015 JinnLynn'
# 排名页面
_rank_page
=
'http://tw.battle.net/d3/zh/rankings/'
# api
_api
=
'http://tw.battle.net/api/d3/'
_api_profile
=
os.path.join(_api,
'profile'
)
_api_data
=
os.path.join(_api,
'data'
)
_hero_classes
=
{
'barbarian'
:
'野蠻人'
,
'crusader'
:
'聖教軍'
,
'demon-hunter'
:
'狩魔獵人'
,
'monk'
:
'武僧'
,
'witch-doctor'
:
'巫醫'
,
'wizard'
:
'秘術師'
}
_retry
=
5
_hero_class
=
''
_active_skills
=
{}
_passive_skills
=
{}
_unique_gems
=
{}
def
_clear_output(msg
=
''):
sys.stdout.write(
'\r{:30}'
.
format
(
' '
))
sys.stdout.write(
'\r{}'
.
format
(msg))
sys.stdout.flush()
def
_process(stated, total):
msg
=
'英雄数据分析中... {}/{}'
.
format
(stated, total)
_clear_output(msg)
def
_get(url, is_json
=
True
):
# print('GET: ', url)
retry
=
5
if
_retry <
1
else
_retry
while
retry >
0
:
try
:
req
=
urllib2.urlopen(url.encode(
'utf8'
), timeout
=
10
)
return
json.load(req)
if
is_json
else
req.read()
except
KeyboardInterrupt, e:
raise
e
except
Exception, e:
retry
-
=
1
# print('retry', retry, e)
# raise e
def
_api_url(
*
args,
*
*
kwargs):
slash
=
kwargs.get(
'slash'
,
False
)
args
=
[
unicode
(arg)
for
arg
in
args]
url
=
os.path.join(
*
args).rstrip(
'/'
)
return
url
+
'/'
if
slash
else
url
def
get_era():
req
=
urllib2.urlopen(_rank_page)
return
req.geturl().split(
'/'
)[
-
2
]
def
get_rank_page_url(era):
url_part
=
'rift-'
if
_hero_class
=
=
'demon-hunter'
:
url_part
+
=
'dh'
elif
_hero_class
=
=
'witch-doctor'
:
url_part
+
=
'wd'
else
:
url_part
+
=
_hero_class
return
os.path.join(_rank_page,
'era'
, era, url_part)
def
fetch_rank_list():
tags
=
[]
try
:
_clear_output(
'获取当前游戏纪元...'
)
era
=
get_era()
_clear_output(
'获取当前排名前1000的玩家...'
)
url
=
get_rank_page_url(era)
html
=
_get(url, is_json
=
False
)
# re parse
lst
=
re.findall(
r
"a href=\"(.*)\" id="codetool">
。
|
最后此篇关于Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计的文章就讲到这里了,如果你想了解更多关于Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这个问题在这里已经有了答案: What does the question mark character ('?') mean in C++? (8 个答案) 关闭 7 年前。 这一行我看不懂为什么
在构建模式下甚至可以有两个玩家吗?查看 Roblox 开发者杂志文章“What did you sleigh?”,它在玩家列表中显示了两个“玩家”。 最佳答案 打开 Roblox Studio 转到任
在构建模式下甚至可以有两个玩家吗?查看 Roblox 开发者杂志文章“What did you sleigh?”,它在玩家列表中显示了两个“玩家”。 最佳答案 打开 Roblox Studio 转到任
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
“Clash of Clans”使用 Game Center 对玩家进行身份验证并将其与现有的远程存储游戏状态相关联。 据我所知,游戏仅在客户端提供玩家标识符。是否有支持的技术来安全地验证用户而不是仅
我正在开发多人游戏,但我无法找出如何将其他客户端连接到创建的游戏。我的意思是客户端 A 创建到服务器的套接字连接,其他客户端(A,B ...)如何连接到客户端 A?有人可以帮我吗? 附注我是网络编程新
我正在尝试使用浏览器控制台一步一步地制作井字游戏,并最终改进我的功能。然而,我被困在玩家2回合(ttt_player2_turn()),我必须检查箱子是否为空。看来我在这个例子中的论证有问题。感谢您的
如果我向上移动玩家 1 和玩家 2,假设我按下玩家 1 的向下键,我的玩家将停止向上移动。我找不到问题所在。有人可以帮助我并解释我做错了什么吗? package game; import java.a
我正在创建一个自上而下的 2D 游戏,并且使用 Box2D 来模拟物理,我的问题是: 如何使玩家保持与我的宇宙飞船的相对速度,并且仍然能够在飞船也在移动的情况下围绕我的玩家移动? 我在下面放了一个插图
我是 Java 新手,我正在尝试制作一个简单的游戏来娱乐。我首先尝试将 repaint 放入 PaintComponent() 中,它一直有效,直到我尝试添加一些背景。有谁知道如何让我的玩家在有或没有
//我正在尝试对玩家 2 的代码进行一些编辑,因此我删除了涉及玩家 1 的所有内容。但出于某种原因,如果没有玩家 1 的代码,玩家 2 根本不会执行任何操作。(假设使用 i、j、k 和 l 键 mov
我接到了一项任务,要编写一个由人类玩家和 AI 玩家组成的 NIM 游戏。游戏是“Misere”(最后一个必须拿起一根棍子的人输了)。 AI 应该使用 Minimax 算法,但它正在采取使其输得更快的
我是一名优秀的程序员,十分优秀!