htmldiv全屏代碼(html5 全屏)
本文用Python從撈月狗網(wǎng)站上面抓取國服各區(qū)及外服王者數(shù)據(jù)信息,然后用R軟件進(jìn)行數(shù)據(jù)初探及淺析。旨在發(fā)現(xiàn)數(shù)據(jù)后面的有趣的東西!愛生活,愛數(shù)據(jù)!
分享前還是先分享自己的Python學(xué)習(xí)交流群:308754087群內(nèi)不定時(shí)分享干貨,包括2017最新的python企業(yè)案例學(xué)習(xí)資料和零基礎(chǔ)入門教程,歡迎初學(xué)和進(jìn)階中的小伙伴入群學(xué)習(xí)交流
Python爬取撈月狗數(shù)據(jù)
要抓取的數(shù)據(jù)如下圖所示:
主要包括王者游戲ID,所在區(qū)服,勝點(diǎn),勝場,負(fù)場,勝率,最近狀態(tài),擅長位置,本命英雄等。由于撈月狗的數(shù)據(jù)是每天更新的,所以不同時(shí)間爬取數(shù)據(jù)可能會有所不同。
所用的Python代碼如下:
導(dǎo)入所需要的模塊:
import requests
import re
import pandas as pd
設(shè)置頭部信息:
head={'User-Agent':'你自己的頭部信息'}
設(shè)置正則來獲取國服王者信息:
rem=re.compile(r'class="subStrTitle"(.*?)/span.*?server"(.*?)/div.*?class="icon-dan"em(.*?)/em.*?span(.*?)em class="color-win"(.*?).*?\tspan//span.*?span(.*?)em class="color-defeat"(.*?)/em.*?"percentage"(.*?)/span.*?/score/(.*?).png.*?color-zhongdan"(.*?)/span.*?alt="(.*?)"/.*?alt="(.*?)"/.*?alt="(.*?)"/',re.S)
展開全文
外服正則用于獲取外服王者信息:
reh=re.compile(r'span class="subStrTitle"(.*?)/span.*?player-server"(.*?)/div.*?em(.*?)/em.*?span(.*?)em.*?win"(.*?)/em/span.*?span.*?span(.*?)em.*?feat"(.*?)/em.*?"percentage"(.*?)/span.*?score/(.*?).png.*?"color-zhongdan"(.*?)/span.*?src="(.*?)".*?src="(.*?)".*?src="(.*?)"',re.S)
獲取國服對應(yīng)的戰(zhàn)區(qū),存放在zhanqu_list_cn中:
url_cn='http://www.laoyuegou.com/x/zh-cn/lol/lol/godrank.html?region=cnarea=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)#國服戰(zhàn)區(qū)
獲取外服對應(yīng)的戰(zhàn)區(qū),存放在zhanqu_list_en中:
url_en='http://www.laoyuegou.com/x/zh-cn/lol/lol/godrank.html?region=foreignarea=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)
定義下載中國戰(zhàn)區(qū)數(shù)據(jù)的函數(shù):
def updown_cn(zhanqu_list_cn):
for zhanqu in zhanqu_list_cn:
for m in range(1,11):
url=zhanqu+'page='+str(m)
im = requests.get(url,headers = head)
if im.status_code == 200:
data=re.findall(rem,im.text) #得到數(shù)據(jù)rem代表國服數(shù)據(jù)
data=pd.DataFrame(data)
data.to_csv('/home/wajuejiprince/文檔/LOLDT/LOLDT.csv', header=False, index=False,mode='a+')#寫入csv文件,'a+'是追加模式
data=[]
定義下載外服戰(zhàn)區(qū)數(shù)據(jù)的函數(shù):
def updown_en(zhanqu_list_en):
for zhanqu in zhanqu_list_en:
for m in range(1,11):
url=zhanqu+'page='+str(m)
im = requests.get(url,headers = head)
if im.status_code == 200:
data=re.findall(reh,im.text) #得到數(shù)據(jù)reh代表外服數(shù)據(jù)
data=pd.DataFrame(data)
data.to_csv('/home/wajuejiprince/文檔/LOLDT/LOLDT.csv', header=False, index=False,mode='a+')#寫入csv文件,'a+'是追加模式
data=[]
下載數(shù)據(jù):
updown_cn(zhanqu_list_cn) #下載中國戰(zhàn)區(qū)數(shù)據(jù)
updown_en(zhanqu_list_en) #下載外服戰(zhàn)區(qū)數(shù)據(jù)
下載下來的數(shù)據(jù)保存格式是CSV格式,內(nèi)容如下圖所示:
經(jīng)過翻看數(shù)據(jù),只找到幾條格式異常數(shù)據(jù)(已經(jīng)手動刪除)。
R語言數(shù)據(jù)初探
下面用R軟件來分析數(shù)據(jù),看看能否發(fā)現(xiàn)一些有趣的事情!
導(dǎo)入分析是要用的R語言程序包:
library(data.table)
library(plotly)
library(magrittr)
library(wordcloud2)
導(dǎo)入數(shù)據(jù):
dt=fread(file.choose())
國服數(shù)據(jù):
dt_cn=dt[1:2500] #也就是前2500個(gè)
外服數(shù)據(jù):
dt_en=dt[2501:4480]
各個(gè)戰(zhàn)區(qū)王者數(shù)量(國服):
dt_cn[,.(.N),by=.(所在戰(zhàn)區(qū))]
所在戰(zhàn)區(qū) N
1: 艾歐尼亞 90
2: 祖安 80
3: 諾克薩斯 80
4: 班德爾城 90
5: 皮爾特沃夫 90
...................
25: 扭曲叢林 99
26: 教育網(wǎng)專區(qū) 25
27: 巨龍之巢 90
28: 男爵領(lǐng)域 90
29: 峽谷之巔 80
所在戰(zhàn)區(qū) N
概覽數(shù)據(jù)(國服):
summary(dt_cn[,.(.N),by=.(所在戰(zhàn)區(qū))])
所在戰(zhàn)區(qū) N
Length:29 Min. : 25.00
Class :character 1st Qu.: 80.00
Mode :character Median : 90.00
Mean : 86.21
3rd Qu.: 90.00
Max. :100.00
#王者最少的區(qū)
dt_cn[,.(.N),by=.(所在戰(zhàn)區(qū))][N==25]
所在戰(zhàn)區(qū) N
1: 教育網(wǎng)專區(qū) 25
#王者有100人的區(qū)(最多也就100人)
dt_cn[,.(.N),by=.(所在戰(zhàn)區(qū))][N==100]
所在戰(zhàn)區(qū) N
1: 均衡教派 100
2: 守望之海 100
外服王者數(shù)量:
plot_ly(dt_en[,.(.N),by=.(所在戰(zhàn)區(qū))],x=~所在戰(zhàn)區(qū),y=~N,type="bar")
外服王者數(shù)量較多(相對于國服一個(gè)區(qū)),可能原因是有的外服就一個(gè)服務(wù)器,比如韓國,另外也和撈月狗統(tǒng)計(jì)的數(shù)據(jù)有關(guān).
國服各區(qū)平均勝點(diǎn):
dt_cn[,.(mean=mean(勝點(diǎn))),by=.(所在戰(zhàn)區(qū))]
這里并不能看出艾歐尼亞是最強(qiáng)的戰(zhàn)區(qū)。
王者平常都是處于什么游戲狀態(tài):
wordcloud2(dt_cn[,.(.N),by=.(最近狀態(tài))])
英雄聯(lián)盟的評價(jià)等級是這樣遞增的D-,D,D+;C-,C,C+;B-,B,B+;A-,A,A+;S-,S,S+!大部分王者的最近狀態(tài)往往都是S級別的狀態(tài)??上У氖窃摂?shù)據(jù)集中沒有其他段位的數(shù)據(jù),如果有的話還可以比較一下各個(gè)段位玩家的平時(shí)的游戲狀態(tài)。
王者擅長的位置:
各個(gè)大區(qū)的王者比較喜歡打野和上單的位置。這兩個(gè)位置也是英雄聯(lián)盟中承受傷害比較多的位置,也可以說他們可能更傾向于玩"肉"一點(diǎn)的英雄吧。這樣的英雄也是在職業(yè)聯(lián)賽中經(jīng)常說的容錯率比較高。換句話說也就是:又肉又有輸出型的英雄。
王者玩家本命英雄(當(dāng)前版本2017.08.05):
#由于在爬去數(shù)據(jù)的時(shí)候有的本命英雄不是我們預(yù)想的,在這里將其刪除(也就3~4個(gè)).
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-c(dt_1,dt_2,dt_3) #所有的英雄
table(all_hero)%%data.frame()%%wordcloud2(shape='star')
#以星型方式繪制云圖。
不愧是王者玩家,玩盲僧這樣”騷氣“操作的英雄。。。。。。(由于外服的本命英雄在爬取的時(shí)候爬到的都是一些圖片鏈接,不方便可視化,所以以上云圖不含外服數(shù)據(jù))
總結(jié):
朋友們聽我一句勸,放下游戲吧, 出去走走, 讀幾頁自己喜歡的書,去自己喜歡的地方走走,陪陪喜歡的人,晚上無聊的時(shí)候 約幾個(gè)朋友出去喝喝茶,聊聊天, 真的一天下來,你會發(fā)現(xiàn)還是玩游戲有意思!
關(guān)于作者:
姓名:麥艷濤網(wǎng)名:挖掘機(jī)小王子個(gè)人網(wǎng)站:挖掘機(jī)小王子微信:Gorgon---MedusaQQ郵箱:WaJueJiPrince@qq.com個(gè)人簡介:數(shù)據(jù)分析愛好者
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。