我是靠谱客的博主 文艺爆米花,最近开发中收集的这篇文章主要介绍minecraft python api_Minecraft 国际正版信息查询(Python),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一个 Python 小程序,可以查询到玩家正版账号的相关信息。(目前只能查到 UUID,未来支持下披风、皮肤等)

程序技术含量不高,全靠吃 https://playerdb.co/ 的接口,就当练练手(捂脸)。

只能查询 Java 版,基岩版没找到合适的 API。

授权:CC BY 3.0 国际

注意:在 51 行需要把字符串换成你的用户代理字符串!

方法:用 Chrome 访问 chrome://version/ ,将『用户代理』一行信息(Mozilla/...)复制下来。

在 51 行 'user-agent' 对应的字符串换成你的用户代理。(B 站是 101 行,因为被插了一堆换行符)

屑站不给代码框,所以你们看到的都是没有高亮的鬼玩意。

然后就是代码被屑站插了一堆换行,所以还是等知乎发布后再抄吧...

或者说想想办法把多出来的换行符删掉。

代码从下面开始

doc = '''

==============================================================

一个查询 Minecraft Java Edition 正版 ID 的小玩意

基于 playerdb.co

By CYWVS

需要联网

使用方法:>>> [command] [ID]

其中,command 如下

info  提供账号信息(目前只有 UUID)。如果 ID 为 * ,则执行多次查询。

skin  获取皮肤并保存至当前目录(未制作)

就这些了 :( 功能不全

e.g.

>>> info CYWVS

>>> info *

t[1] >>> CYWVS

t[2] >>> Me

t...

t[n] >>> *

>>> skin CYWVS

That's fucking all and enjoy it XD

(查询 info 的函数是 mc_acc_info,需要的自己在代码里拿)

==============================================================

'''

def mc_acc_info(ID):

'''

一个获取 Minecraft 账户信息的函数 | A function of getting minecraft account information

基于 playerdb.co | Be based on playerdb.co

需要联网 | Need Internet

仅支持 Java 版 | Java Edition Only

参数 | args:

ID:

玩家 ID | Player's ID

函数将返回一个字典 | This func will return a dict:

{'id' : str, 'full_uuid' : str, 'trimmed_uuid' : str}

如果账户不存在将返回 None | If the account does not exist, it will return None

By CYWVS

'''

from urllib.request import urlopen, Request, quote

from urllib.error import HTTPError

import urllib

#伪装成正常浏览器

headers = {'user-agent':'Mozilla/5.0 ...(换掉这个字符串)'}#需要替换

url = Request('https://playerdb.co/api/player/minecraft/' + quote(ID), headers = headers)

try:

r = urlopen(url, timeout = 10) #返回一个 bytes 类型的“字典”

except: #打开失败 即不存在用户名

return None

temp_scope = {'true' : True, 'false' : False} #爬虫结果包含 true 和 false ,但是它们在 Python 未定义,所以这里重新定义了

info = eval(str(r.read(), encoding = "utf-8"), temp_scope)

if info['message'] == 'Successfully found player by given ID.':

return {

'id'           : info['data']['player']['username'] ,

'full_uuid'    : info['data']['player']['id']       ,

'trimmed_uuid' : info['data']['player']['raw_id']   }

elif info['message'] == 'Mojang API lookup failed.':

return None

else: return None

def print_mc_acc_info(ID):

print()

info = mc_acc_info(ID)

if info is None:

print('t查询失败!nt1. 用户名不存在nt2. 未联网nt3. playerdb.co 失效')

else:

print('t玩家名:'     , info['id']          , sep = '')

print('t完整的 UUID:', info['full_uuid']   , sep = '')

print('t简化的 UUID:', info['trimmed_uuid'], sep = '')

print()

print(doc)

while True:

try:

command, Minecraft_ID = input('>>> ').split()

except:

print('t输入不合法。')

continue

if command == 'info':

if Minecraft_ID == '*':

print('t请多次输入用户名并回车。如果想要停止,输入 * (请不要添加更多字符包括空格)。')

IDs = []

count = 1

while True:

ID = input('t[' + str(count) + '] >>> ')

if ID == '*': break

else:

count += 1

IDs.append(ID)

print()

count = 1

for ID in IDs:

print('t第', count, '个结果(ID:' + ID +'):')

count += 1

print_mc_acc_info(ID)

else:

print_mc_acc_info(Minecraft_ID)

elif command == 'skin':

print('t功能还没写。')

else:

print('t'', command, '' 未定义。', sep = '')

代码从上面结束

效果

其实这东西屁用没有

最后

以上就是文艺爆米花为你收集整理的minecraft python api_Minecraft 国际正版信息查询(Python)的全部内容,希望文章能够帮你解决minecraft python api_Minecraft 国际正版信息查询(Python)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部