gpt4 book ai didi

Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

说实在的个人对游戏并没有多大的兴趣,但唯独对暴雪的Diablo系列很有感情,去年年初开始玩Diablo3,断断续续,感觉最麻烦的是选择技能,每次版本更新可能都有更优的build,这对于我这样的业余玩家来说可不是件好事,好在宏伟秘境后有了天梯,借鉴排名在前的高级玩家们build总没错,于是花了点时间写了这个脚本.

Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计

脚本只是统计了主动技能、被动技能和传奇宝石的使用情况,理论上统计其它如装备等信息也是一样简单可行的,但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
  • 延伸 · 阅读

    • 2020-09-01Python模拟登陆淘宝并统计淘宝消费情况的代码实
    • 2020-09-01解决Windows下python和pip命令无法使用的问题
    • 2020-09-01Python Selenium自动化获取页面信息的方法
    • 2020-09-01python+requests接口自动化框架的实现
    • 2020-09-01python如何导出微信公众号文章方法详解
    • 2020-09-01Python生成并下载文件后端代码实例
    精彩推荐
    • PythonPython写入CSV文件的方法

      Python写入CSV文件的方法

      这篇文章主要介绍了Python写入CSV文件的方法,涉及Python使用csv模块操作csv文件读写的相关技巧,非常简单实用,需要的朋友可以参考下... 。

      光索与诺 249 2020-07-20
    • Pythonpython基于phantomjs实现导入图片

      python基于phantomjs实现导入图片

      这篇文章主要介绍了python基于phantomjs实现导入图片的相关资料,需要的朋友可以参考下... 。

      脚本之家 354 2020-08-22
    • Python在Python中使用pngquant压缩png图片的教程

      在Python中使用pngquant压缩png图片的教程

      这篇文章主要介绍了在Python中使用pngquant压缩png图片的教程,本文中列举了一个压缩PNG图片的实例,需要的朋友可以参考下... 。

      Piao_Polar 348 2020-06-02
    • PythonPython 正则表达式(转义问题)

      Python 正则表达式(转义问题)

      这篇文章主要介绍了Python 正则表达式(转义问题),需要的朋友可以参考下... 。

      脚本之家 217 2020-05-17
    • Python从Python程序中访问Java类的简单示例

      从Python程序中访问Java类的简单示例

      这篇文章主要介绍了从Python程序中访问Java类的简单示例,包括给出了在安卓开发中的一个短小示例,需要的朋友可以参考下... 。

      脚本之家 294 2020-06-09
    • PythonPython Flask框架实现简单加法工具过程解析

      Python Flask框架实现简单加法工具过程解析

      这篇文章主要介绍了Python Flask框架实现简单加法工具过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 。

      青女素娥 368 2020-06-04
    • PythonPython实现模拟登录及表单提交的方法

      Python实现模拟登录及表单提交的方法

      这篇文章主要介绍了Python实现模拟登录及表单提交的方法,涉及Python正则匹配、cookie及URL操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下... 。

      Sephiroth 382 2020-07-27
    • Python春节到了 教你使用python来抢票回家

      春节到了 教你使用python来抢票回家

      这篇文章主要介绍了春节到了 教你使用python来抢票回家,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可... 。

      编程入门到放弃 351 2020-05-09

    最后此篇关于Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计的文章就讲到这里了,如果你想了解更多关于Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com