好久没有更新专栏了
最近有点想分享点东西
就先写写我是怎么获取数据的吧
我是一个学油气田相关专业出身工科生,所以关于python的所有知识都是自学的,如果有学计算机、电子出身的大神别笑话我。
我这几年零零散散的做过一些dota2的数据分析(前几年在专栏发过,近几年就自己调取一些数据,分析着玩),因为遇到过到不同形式的数据源,我也熟悉了不同的python库来获取相应的数据,算是总结一下我的心路历程吧
数据源
一、dota2api
V社本身有一个开放数据接口
WebAPI - Official TF2 Wikiwiki.teamfortress.com有人在python里面封装了一个库 叫dota2api,输入命令:
pip install dota2api 就能用这个包了
优点:很明显,python就是这样有人帮你写好了库,就不用自己写了,去百度一下他的文档看看怎么调用就行了
缺点:这其实就是一个访问API的库,V社给你开放了什么数据你就能获取什么数据,这个接口能够获取统计特征和数据量(调用量和调用速度有限制),每次访问只能获取一场比赛的数据(根据比赛的ID),所以要是想统计一个majar的信息就要调用多次。
二、写爬虫爬dotamax和dotabuff
以dotabuff为例
一场比赛的统计页面www.dotabuff.com![07d32e31f757daa4003da7c3e5993f4b.png](https://i-blog.csdnimg.cn/blog_migrate/93b049f1129c4accf28b7f377e187130.png)
爬虫是理论上所有你通过网络访问的页面、链接,只要网站给你返回了内容(文字,图片、音频、视频),都能爬下来。
当然,我爬的只有文字
这里用过python库包括scrapy、beautifulsoup等等
1.右键点击页面-->检查
弹出下图所示的页面
![3e60d8159ce4c619f94bfdbaf2bfc360.png](https://i-blog.csdnimg.cn/blog_migrate/c5752796b1180097feb0e51c4f3e6418.jpeg)
这里面的html代码是一种标记语言,用它来构成网页的内容和骨架,我们要爬的话主要就是爬这些东西
优点:里面很多数据dotabuff为了展示已经计算好的,而且很多数据是其他数据源无法获取到的,比如视野数据,根据我目前的尝试,只有在dotabuff这里才能爬到(如果大家有别的发现,务必跟我交流一下)。
缺点:爬虫的通病,如果人家的网页结构有变化,爬虫也得改。
三、opendota
这个我是看了何求知的微博文章才知道的,这个网站真的好。
它本身就是本着开源共享的思路建设的网站,网站有这些支持者,VPGame大家应该是熟悉的,做饰品交易的;OpenAI是那个做人工智能电脑的。
![80d142928b8e46cbfe6cb4e29014e3d0.png](https://i-blog.csdnimg.cn/blog_migrate/3dd9fefc18e3fdd2686d0a1cc99d7d31.png)
1.api接口
它也有一些API接口开放,我看了一下文档也是根据比赛ID,一次调用一场比赛
注册一个账号,然后获取一个api的key,这个key应该是用来统计调用接口行为的标识,
![15c119ea55f5b871ea1c4211a83f1d1f.png](https://i-blog.csdnimg.cn/blog_migrate/85d33b0fc193403a2fc42e95c7ea426f.png)
2.数据探索器
这个东西就很强了
不用注册,每次调取就像在数据库里面调取数据一样,用get方式访问应用开发接口,再带一个名称为"sql"的参数就可以了。
它可以批量调取大量的数据(具体的上限还不知道)。
![f6ede90c1afb633cc93080baaa203f39.png](https://i-blog.csdnimg.cn/blog_migrate/ae64739c48cc5152e269fbfd167a118c.jpeg)
写sql的话得知道什么表里存着什么数据,这个也是有文档可以查到的。点击左下角的概要,跳转到github,里面具体写明了表的名称和字段名称,但是每个字段是干什么的没有写清楚,绝大部分应该是能认出来的。有一小部分就要根据字段名称猜一下,或者到具体的录像回放里面去看了。
API接口和SQL都用python的requests库就可以直接访问。
四、manta
dotabuff/mantagithub.com![c7398e41d2319a35002e9e626ebb53d6.png](https://i-blog.csdnimg.cn/blog_migrate/61558c5aa0fd1e77e88caad93dce21bc.png)
这个数据源就相当diao了,其实严格的说它不是一个数据源,它是一个工具。他能干什么呢?解析dota2的录像文件。dota2的录像文件是我前面说的三个“数据源“的“数据源”。
他是基于GO语言的,GO语言没有接触过,但是看着教程,调了调算是能够把它项目里面的实例运行起来了。
这个对于我这样的厨师来说不是很友好,就放弃了(以后想钻研了再说)。
五、Liquipedia
这是一个Dota2的百科网站,英雄、物品数据、版本更迭、战队历史、换人情况、选手信息、比赛信息、赛程等等。有时候不知道战队的人是谁,就到这个网站找一下。
Liquipedia Dota 2 Wikiliquipedia.net如果大家用过其他数据源也欢迎跟我交流
下一篇说说可能会用到一些python库。