教你用python爬英雄联盟官网:①掌握爬虫技术;②Python数据可视化(1)

二、爬虫

====

第一步:

首先,桥哥来到了英雄联盟官网,虽然早已提不动刀,但看着官网还是不免怀念起大学时代~

经过观察:发现这个 【英雄】、【物品】、【符文】等,都可以爬下来分析一番。。

第二步:

Q:我们的需求是什么?

A:找到官网的资料数据,看看哪几个英雄最难。

首先,来到**「官网」>>>『英雄联盟首页』 >>> 『游戏资料』 >>>『英雄』.**

我们看到了所有英雄,随便点开一个瞅瞅~

就你了,诡术妖姬!

第三步:

1、打开开发者模式,点击左边的箭头,选择想查看的元素。

2、可以看到的数据:英雄的【物理攻击】【魔法攻击】【防御能力】【上手难度】

诡术妖姬:

物理攻击:☆

魔法攻击:☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆☆ ☆

防御能力:☆ ☆ ☆ ☆

难度系数 :☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

ok,这就是我想要的。

ps.还可以爬所有的皮肤、英雄背景知识,攻略,技能介绍等等

第四步:循环遍历

英雄列表:https://lol.qq.com/data/info-heros.shtml

三、画图分析

======

3.1 物理攻击


物理攻击最低的英雄(1级): 正义巨像,诡术妖姬,堕落天使,冰晶凤凰,天启者,远古巫灵,暮光星灵,岩雀,万花通灵

物理攻击最高的英雄(10级): 无极剑圣,蛮族之王,暗夜猎手,无双剑姬,影流之镰,戏命师,逆羽

3.2 魔法攻击


魔法攻击最低的英雄(1级): 战争女神,暗夜猎手,德玛西亚之力,刀锋之影,放逐之刃,荣耀行刑官,诺克萨斯之手,影流之镰,影流之主,逆羽,残月之肃,血港鬼影,腕豪

魔法攻击最高的英雄(10级): 黑暗之女,诡术妖姬,符文法师,死亡颂唱者,冰晶凤凰,邪恶小法师,远古巫灵,机械先驱,虚空之眼,含羞蓓蕾

3.3 防御能力


防御能力最低的英雄(1级): 暗夜猎手,魔法猫咪,万花通灵

防御能力最高的英雄(10级): 正义巨像,披甲龙龟

3.4 难度系数


难度系数最低的英雄(1级): 暗夜猎手,魔法猫咪,万花通灵

难度系数最高的英雄(10级): 正义巨像,披甲龙龟

3.5 能力矩阵图


ps.以安妮、卡尔玛为例!

四、全部代码

======

encoding: utf-8

import requests

import json

from pyecharts.charts import Pie

from pyecharts import options as opts

from pyecharts.charts import Radar

获取官网英雄数据

def request(url):

headers = { “User-Agent”: “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)”,}

res = requests.get(url, headers=headers)

return res

def data_analysis(title,data):

res = {}

for hero in data:

if hero[‘%s’%title] not in res:

res[hero[‘%s’%title]] = hero[‘name’]

else:

res[hero[‘%s’%title]] = res[hero[‘%s’%title]] + “,” + hero[‘name’]

print(res)

return res

def draw_pie(title, attack):

columns,data = [],[]

for k, v in attack.items():

columns.append(title + k + ‘级’)

data.append(len(v.split(‘,’)))

if k in [‘1’,‘10’]:

print(k,v)

pie = (

Pie()

以[(lable,value),(lable,value),(lable,value)…]形式传入数据。

.add(title, list(z for z in zip(columns, data)))

.set_series_opts(label_opts=opts.LabelOpts(formatter=“{b}: {c}”))

)

pie.render(‘%s.html’%title)

def draw_Radar():

from pyecharts.charts import Radar

radar = Radar()

//由于雷达图传入的数据得为多维数据,所以这里需要做一下处理

radar_data = [[10, 10, 10, 10, 10]]

radar_data1 = [[2, 10, 3, 6, 3]]

radar_data2 = [[1, 8, 7, 5, 8]]

//设置column的最大值,为了雷达图更为直观,这里的月份最大值设置有所不同

schema = [

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值