2020-12-30 10:32:11 阅读(172)
本文利用Python从捞月狗网站上获取国服各区和外服王者的数据信息,然后利用R软件对数据进行初步探索和分析。在数据背后找到有趣的东西!爱生活,爱数据!Python爬月狗数据要抓取的数据如下图所示:主要包括王者游戏ID、区服、胜点、胜点、负场、胜率、最近状态、擅长位置、本命英雄等。因为钓月狗的数据每天都在更新,所以在不同的时间爬行数据可能会有所不同。Python代码如下:导入所需模块:importrequestsimportportpandasaspd设置头部信息:head={'User-Agent':'你自己的头部信息'}设定正则获取国服王者信息:rem=re.compile(r'class="subStrTitle">(.*).*server">(.*).*class="icon-dan">(.*).*(.*)(.*)<.*\t/.*(.*)(.*).*"percentage">(.*).*/score/(.*).png.*color-zhongdan">(.*).*alt="(.*)"/>.*alt="(.*)"/>.*alt="(.*)"/>',re.S)外服正则用于获取外服王者信息:reh=re.compile(r'(.*).*player-server">(.*).*(.*).*(.*)(.*).*.*(.*)(.*).*"percentage">(.*).*score/(.*).png.*"color-zhongdan">(.*).*src="(.*)">.*src="(.*)">.*src="(.*)">',re.S)获取国服对应的战区,存储在zhanqu_list_cn中:url_cn='http://www.laoyuegou.com/x/zh-cn/lol/lol/godrank.htmlregion=cn&area=1'html_cn=requests.get(url_cn,headers=head)reg=re.compile(r'class="cn-li.*href="(.*)">',re.S)zhanqu_list_cn=re.findall(reg,html_cn.text)#国服战区获得外服对应的战区,存储在zhanqu_list_en中:url_en='http://www.laoyuegou.com/x/zh-cn/lol/lol/godrank.htmlregion=foreign&area=kr'html_en=requests.get(url_en,headers=head)ren=re.compile(r'class="foreign-li.*href="(.*)">',re.S)zhanqu_list_en=re.findall(ren,html_en.text)定义下载中国战区数据的函数:defupdown_cn(zhanqu_list_cn): forzhanquinzhanqu_list_cn: forminrange(1,11): url=zhanqu '&page=' str(m) im=requests.get(url,headers=head) ifim.status_code==200: data=re.findall(rem,im.text) #数据rem代表国服数据 data=pd.DataFrame(data) data.to_csv('/home/wajuejiprince/文档/LOLDT/LOLDT.csv',header=False,index=False,mode='a ')#写csv文件,'a '是追加模式 data=[]定义下载外服战区数据的函数:defupdown_en(zhanqu_list_en): forzhanquinzhanqu_list_en: forminrange(1,11): url=zhanqu '&page=' str(m) im=requests.get(url,headers=head) ifim.status_code==200: data=re.findall(reh,im.text) #获取数据reh代表外服数据 data=pd.DataFrame(data) data.to_csv('/home/wajuejiprince/文档/LOLDT/LOLDT.csv',header=False,index=False,mode='a ')#写csv文件,'a '是追加模式 data=[]下载数据:updown_cn(zhanqu_list_cn) #下载中国战区数据updown_en(zhanqu_list_en) #下载外服战区数据下载的数据保存格式为CSV格式,内容如下图所示:查看数据后,只发现几个格式异常数据(已手动删除)。R语言数据初步探索下面用R软件分析数据,看看能不能发现一些有趣的东西!R语言程序包用于导入分析:library(data.table)library(plotly)library(magrittr)library(wordcloud2)导入数据:dt=fread(file.choose()国服数据:dt_cn=dt[1:2500]#即前2500个外服数据:dt_en=dt[2501:4480]各战区王者数量(国服):>dt_cn[,.(.N),by=.(战区) 所在战区 N1: 艾欧尼亚 902: 祖安 803: 诺克萨斯 804: 班德尔城 905:皮尔特沃夫 90...25: 扭曲丛林 9926:教育网专区 2527: 巨龙之巢 9028: 男爵领域 9029: 峡谷之巅 80 所在战区 N概览数据(国服):>summary(dt_cn[,.(.N),by=.(战区)) 所在战区 N Length:29 Min. :25.00 Class:character 1stQu.:80.00 Mode :character Median:90.00 Mean :86.21 3rdQu.:90.00 Max. :100.00 #王者最少的区>dt_cn[,.(.N),by=.(战区)[N==25] 所在战区 N1:教育网专区25#王者有100人(最多100人)>dt_cn[,.(.N),by=.(战区)[N==100] 所在战区 N1:均衡教派1002:守望之海100外服王者数量:plot_ly(dt_en[,.(.N),by=.(战区),x=~所在战区,y=~N,type="bar")外服王者数量较多(相对于国服一区),可能是有些外服只是服务器,比如韩国,也和捞月狗的统计数据有关。国服各区平均胜点:dt_cn[,.(mean=mean(胜点),by=.(战区)这里看不出艾欧尼亚是最强的战区。王者通常处于什么样的游戏状态?wordcloud2(dt_cn[,.(.N),by=.(最近状态))英雄联盟的评价等级是这样增加的D-,D,D ;C-,C,C ;B-,B,B ;A-,A,A ;S-,S,S !国王通常处于什么样的游戏状态:wordcloud2(dt_cn[,.(.N),by=.(最近状态))英雄联盟的评价等级是这样增加的D-,D,D ;C-,C,C ;B-,B,B ;A-,A,A ;S-,S,S !大多数王者最近的状态往往是S级状态。不幸的是,数据集中没有其他部分的数据。如果是这样,你也可以比较每个部分玩家的通常游戏状态。王者擅长的位置:各地的王者更喜欢打野和上单的位置。这两个位置也是英雄联盟中受伤较多的位置,也可以说他们可能更倾向于玩“肉”的英雄。职业联赛中常说这样的英雄容错率比较高。换句话说,有肉有输出英雄。王者本命英雄(2017.08.05):#因为有些本命英雄在爬数据的时候并不是我们预期的,所以在这里删除(也就是3~4).dt_all=fread(file.choose())dt_cn<-dt_all[1:2497]dt_1<-dt_cn[,本命英雄1]dt_2<-dt_cn[,本命英雄2]dt_3<-dt_cn[,本命英雄3]all_hero�ta.frame()%>%wordcloud2(shape='star')#以星形的形式绘制云图。不愧为王者玩家,玩盲僧这样
以上就是关于Python爬取捞月狗数据分析的相关介绍,更多Python爬取捞月狗数据分析相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对Python爬取捞月狗数据分析有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一