Python爬取英雄联盟职业比赛数据

点击上方“算法与数据之美”,选择“置顶公众号”

更多精彩等你来!

英雄联盟全球总决赛的脚步近了,代表LPL出征S9的三支战队也已蓄势待发,经常看英雄联盟比赛的我也是非常期待 FPX、RNG、IG 的精彩表现。我想找找网上有没有公开的比赛数据,兴许还能分析一波,看看这S9冠军最有可能花落谁家。

Python爬取英雄联盟职业比赛数据

功夫不负有心人,我很快就通过搜索引擎找到了含有国内外英雄联盟赛事的网站,喏,就是下面这个。

Python爬取英雄联盟职业比赛数据

在这个网站上,我们能够看到不同赛区的不同赛季的比赛信息,以及各种世界赛的数据信息,包含选手数据队伍数据

打开开发者工具,观察一下这个网站,很容易就发现了包含职业选手信息的页面。

Python爬取英雄联盟职业比赛数据

观察其Headers,发现是GET请求,Requests URL 如下,

https://data.pentaq.com/business_api/2018may/tournament_player_duty_data

,访问该链接需要携带参数 tour 和 patch  。从命名就可以看出,tour 是tournament的简写,patch 是版本号,版本号可以不加入参数,以抓取所有版本的联赛数据。

那么这个 tour 参数如何获得呢?继续观察 Network ,发现了下图这个 tournament_list 。

Python爬取英雄联盟职业比赛数据

各个联赛的id号数据可以通过这个页面来获取,而这个id号正是我们需要的 tour 参数。

Python爬取英雄联盟职业比赛数据

得到了所有的参数信息后,我们便可以使用 requests 来模拟浏览器发出请求,并获取页面的json数据,并一一提取存入MongoDB数据库。运用同样的方法,我们也可以获得各个职业战队的数据。

总的来说这是一个入门级别的爬虫,网站没有采取反爬措施,对新手相当友好。职业选手的数据包含26个数据维度,包含击杀、出场次数、场均参战率、伤害转化率等一系列数据;职业战队的数据包含血腥程度、分均伤害、场均时长、一血率等25个数据维度想必会是非常不错的数据分析素材。

Python爬取英雄联盟职业比赛数据

往期精彩

Pyecharts新版本食用指南

学习资料免费分享

你朋友圈发的假图被我发现了!