皇室战争如何从零开始(皇室战争-使用Clash)

Clash Royale API

皇室战争如何从零开始(皇室战争-使用Clash)(1)

通过Clash Royale API你可以准确并安全的访问皇室战争的数据,获取美妙的体验,开发令人惊叹的工具或是网站。

Clash Royale API保持和游戏本身一样的质量保准,而且持续开发和改进着。

第三方包:clashroyale

clashroyale是一个用python编写的支持异步和同步的对于官方Clash Royale API的封装。

当然,还有其他语言编写的包,如Java编写的jcrAPI、PHP编写的clash-royale-php、Go编写的goroyale等等。

本文主要针对clashroyale,做简单介绍。

安装

开发版本:pip install git https://github.com/cgrok/clashroyale

稳定版本:pip install clashroyale

使用

import os import clashroyale cache_fp = os.path.abspath( # 缓存文件地址 os.path.join( __file__, "../data" ) ) table_name = "clashroyale" client = clashroyale.official_api.Client( token="从clashroyale官网申请的apiToken", is_async=False, # 是否使用异步方式 error_debug=False, # 是否错误调试模式(会为每个方法都抛出异常) session=None, # http会话,可以是requests.Session,也可以是aiohttp.ClientSession timeout=10, # 请求API超时时间 url='https://api.clashroyale.com/v1', # API地址 cache_fp=cache_fp, # 缓存文件地址(使用sqlite3作为缓存数据库) cache_expires=10, # 客户端从API请求特定路由之前等待的秒数 table_name=table_name, # 缓存数据表名 camel_case=False, # 访问数据时是否使用驼峰式的key constants=None, # 使用常量 user_agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" # 用户代理 )

获取所有卡牌清单

all_cards = client.get_all_cards() for card in all_cards: print(card)

返回数据示例:

<Refreshable: {

'name': 'Knight',

'id': 26000000,

'maxlevel': 13,

'iconUrls': {

'medium': 'https: //api-assets.clashroyale.com/cards/300/jAj1Q5rclXxU9kVImGqSJxa4wEMfEhvwNQ_4jiGUuqg.png'

}

}>

获取卡牌具体信息

cat_info = client.get_card_info('Knight') print(cat_info)

返回数据示例:

{

'key': 'knight',

'name': 'Knight',

'sc_key': 'Knight',

'elixir': 3,

'type': 'Troop',

'rarity': 'Common',

'arena': 0,

'description': "A tough melee fighter. The Barbarian's handsome, cultured cousin. Rumor has it that he was knighted based on the sheer awesomeness of his mustache alone.",

'id': 26000000

}

获取部落信息

clan = client.get_clan('922QPY8') # 传入参数为部落标签 print(clan)

返回数据示例:

<Refreshable: {

'tag': '#922QPY8',

'name': '白羽部落',

'type': 'open',

'description': '【2016.2.21成立】不忘初心,方得始终。宁缺毋滥欢迎积极打部落战活跃玩家我们一直都在,只因你回头找到家。认真部落战参战打满3 1❗部落战胜率低于30%/部落战连续3次未打/周捐未200✈可请假常驻加Q群:***',

'badgeId': 16000102,

'clanScore': 53379,

'clanWarTrophies': 13032,

'location': {

'id': 57000056,

'name': 'China',

'isCountry': True,

'countryCode': 'CN'

},

'requiredTrophies': 5000,

'donationsPerWeek': 22320,

'clanChestStatus': 'inactive',

'clanChestLevel': 1,

'clanChestMaxLevel': 0,

'members': 50,

'memberList': [

{

'tag': '#URPQ8RJP',

'name': 'DaYang',

'role': 'member',

'lastSeen': '20200308T122141.000Z',

'expLevel': 13,

'trophies': 5734,

'arena': {

'id': 54000017,

'name': 'MasterIII'

},

'clanRank': 1,

'previousClanRank': 3,

'donations': 174,

'donationsReceived': 600,

'clanChestPoints': 0

}

]

}>

获取部落战信息

clan_war = client.get_clan_war('922QPY8') print(clan_war)

返回数据示例:

<Refreshable: {

'state': 'warDay',

'warEndTime': '20200308T170813.886Z',

'clan': {

'tag': '#922QPY8',

'name': '白羽部落',

'badgeId': 16000102,

'clanScore': 13032,

'participants': 28,

'battlesPlayed': 28,

'wins': 14,

'crowns': 28

},

'participants': [

{

'tag': '#U2CV2UGY',

'name': '龙少',

'cardsEarned': 1869,

'battlesPlayed': 0,

'wins': 0,

'collectionDayBattlesPlayed': 3,

'numberOfBattles': 1

}

],

'clans': [

{

'tag': '#CGCV0Q',

'name': '#BEASTGANG',

'badgeId': 16000029,

'clanScore': 18818,

'participants': 29,

'battlesPlayed': 29,

'wins': 23,

'crowns': 47

}

]

}>

获取玩家信息

player = client.get_player('U2CV2UGY') # 传入参数为玩家标签(个人资料中玩家名字下方#开头的一串字符串) print(player)

返回数据示例:

<Refreshable: {

'tag': '#U2CV2UGY',

'name': '龙少',

'expLevel': 13,

'trophies': 5294,

'bestTrophies': 5925,

'wins': 5231,

'losses': 5229,

'battleCount': 14023,

'threeCrownWins': 2842,

'challengeCardsWon': 2171,

'challengeMaxWins': 9,

'tournamentCardsWon': 0,

'tournamentBattleCount': 298,

'role': 'coLeader',

'donations': 180,

'donationsReceived': 200,

'totalDonations': 48591,

'warDayWins': 146,

'clanCardsCollected': 362035,

'clan': {

'tag': '#922QPY8',

'name': '白羽部落',

'badgeId': 16000102

},

'arena': {

'id': 54000015,

'name': 'MasterI'

},

'leagueStatistics': {

'currentSeason': {

'trophies': 5294,

'bestTrophies': 5338

}

},

'badges': [

{

'name': '1000Wins',

'progress': 5231

}

],

'achievements': [

{

'name': 'TeamPlayer',

'stars': 3,

'value': 11,

'target': 1,

'info': 'JoinaClan',

'completionInfo': None

}

],

'cards': [

{

'name': 'IceGolem',

'id': 26000038,

'level': 7,

'maxLevel': 11,

'count': 812,

'iconUrls': {

'medium': 'https: //api-assets.clashroyale.com/cards/300/r05cmpwV1o7i7FHodtZwW3fmjbXCW34IJCsDEV5cZC4.png'

}

}

],

'currentFavouriteCard': {

'name': 'Rascals',

'id': 26000053,

'maxLevel': 13,

'iconUrls': {

'medium': 'https: //api-assets.clashroyale.com/cards/300/KV48DfwVHKx9XCjzBdk3daT_Eb52Me4VgjVO7WctRc4.png'

}

},

'starPoints': 35636

}>

获取玩家对战信息

player_battles = client.get_player_battles('U2CV2UGY') for battle in player_battles: print(battle)

返回数据示例:

<BaseAttrDict: {

'type': 'challenge',

'battleTime': '20200307T143357.000Z',

'challengeId': 73003042,

'isLadderTournament': False,

'arena': {

'id': 54000041,

'name': 'LegendaryArena'

},

'gameMode': {

'id': 72000005,

'name': 'DraftMode'

},

'challengeWinCountBefore': 9,

'deckSelection': 'draft',

'team': [

{

'tag': '#U2CV2UGY',

'name': '龙少',

'startingTrophies': 5294,

'crowns': 2,

'kingTowerHitPoints': 3500,

'princessTowersHitPoints': [

900

],

'clan': {

'tag': '#922QPY8',

'name': '白羽部落',

'badgeId': 16000102

},

'cards': [

{

'name': 'Lumberjack',

'id': 26000035,

'level': 1,

'maxLevel': 5,

'iconUrls': {

'medium': 'https: //api-assets.clashroyale.com/cards/300/E6RWrnCuk13xMX5OE1EQtLEKTZQV6B78d00y8PlXt6Q.png'

}

}

]

}

],

'opponent': [

{

'tag': '#882988',

'name': 'Ignars',

'startingTrophies': 5174,

'crowns': 1,

'kingTowerHitPoints': 2708,

'clan': {

'tag': '#YRJ9C0',

'name': 'España',

'badgeId': 16000172

},

'cards': [

{

'name': 'RoyalGiant',

'id': 26000024,

'level': 9,

'maxLevel': 13,

'iconUrls': {

'medium': 'https: //api-assets.clashroyale.com/cards/300/mnlRaNtmfpQx2e6mp70sLd0ND-pKPF70Cf87_agEKg4.png'

}

}

]

}

],

'challengeTitle': '20200307LegendaryLadiesDraftChallenge'

}>

获取玩家宝箱信息(接下来再对战x场可以获得什么宝箱)

player_chests = client.get_player_chests('U2CV2UGY') for chest in player_chests: print(chest)

返回数据示例:

<Refreshable: {'index': 0, 'name': 'Golden Chest'}>

<Refreshable: {'index': 1, 'name': 'Silver Chest'}>

<Refreshable: {'index': 2, 'name': 'Silver Chest'}>

<Refreshable: {'index': 3, 'name': 'Silver Chest'}>

<Refreshable: {'index': 4, 'name': 'Silver Chest'}>

<Refreshable: {'index': 5, 'name': 'Magical Chest'}>

<Refreshable: {'index': 6, 'name': 'Silver Chest'}>

<Refreshable: {'index': 7, 'name': 'Silver Chest'}>

<Refreshable: {'index': 8, 'name': 'Golden Chest'}>

<Refreshable: {'index': 32, 'name': 'Giant Chest'}>

<Refreshable: {'index': 193, 'name': 'Mega Lightning Chest'}>

<Refreshable: {'index': 283, 'name': 'Epic Chest'}>

<Refreshable: {'index': 653, 'name': 'Legendary Chest'}>

获取顶级部落清单

top_clans = client.get_top_clans('global', limit=3) for clan in top_clans: print(clan)

返回数据示例:

<Refreshable: {'tag': '#PPCLCJG9', 'name': 'AK Syndicate', 'rank': 1, 'previousRank': 1, 'location': {'id': 57000249, 'name': 'United States', 'isCountry': True, 'countryCode': 'US'}, 'clanScore': 65235, 'members': 50, 'badgeId': 16000044}>

<Refreshable: {'tag': '#PGLQ0VQ', 'name': 'Lost Orbit', 'rank': 2, 'previousRank': 2, 'location': {'id': 57000249, 'name': 'United States', 'isCountry': True, 'countryCode': 'US'}, 'clanScore': 64172, 'members': 50, 'badgeId': 16000096}>

<Refreshable: {'tag': '#2LUJ09CC', 'name': 'GRAND CROWN', 'rank': 3, 'previousRank': 3, 'location': {'id': 57000122, 'name': 'Japan', 'isCountry': True, 'countryCode': 'JP'}, 'clanScore': 63649, 'members': 49, 'badgeId': 16000014}>

获取顶级玩家清单

top_players = client.get_top_players('global', limit=3) for player in top_players: print(player)

返回数据示例:

<Refreshable: {'tag': '#8QQ8QJ99P', 'name': 'phatcat', 'expLevel': 13, 'trophies': 6975, 'rank': 1, 'previousRank': 1, 'clan': {'tag': '#29C98ULY', 'name': '寶貝軍團', 'badgeId': 16000015}, 'arena': {'id': 54000020, 'name': 'Royal Champion'}}>

<Refreshable: {'tag': '#CC0CLGUC', 'name': '☠️ SHADOW ☠️', 'expLevel': 13, 'trophies': 6958, 'rank': 2, 'previousRank': 6, 'clan': {'tag': '#98U890U', 'name': 'EGY FORCES', 'badgeId': 16000043}, 'arena': {'id': 54000020, 'name': 'Royal Champion'}}>

<Refreshable: {'tag': '#220U2GV', 'name': 'RH❄I Viiper', 'expLevel': 13, 'trophies': 6946, 'rank': 3, 'previousRank': 45, 'clan': {'tag': '#RVPJJQP', 'name': 'Pirates', 'badgeId': 16000078}, 'arena': {'id': 54000020, 'name': 'Royal Champion'}}>

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页