欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

我是創(chuàng)始人李巖:很抱歉!給自己產(chǎn)品做個廣告,點擊進來看看。  

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

作者:橘子俠

最近看到身邊好幾個朋友都在用“全民K歌”這款軟件手機上K歌,使用頻率還是很高,于是就想來看看全民K歌平臺的用戶究竟是一群什么樣的用戶?他們有什么樣的特征。然后進行數(shù)據(jù)分析,強化自己的分析思維與實戰(zhàn)能力。這一個過程我將會分為四個部分來寫:數(shù)據(jù)獲取,數(shù)據(jù)清洗,數(shù)據(jù)的呈現(xiàn),分析報告的撰寫。本文是第一部分。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

python爬蟲獲取用戶數(shù)據(jù)

進入用戶的個人中心,下面的圖中畫方框的地方就是我們需要獲取的數(shù)據(jù):

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

接下來我們看一下這些數(shù)據(jù)的存儲方式,打開nt之后我們可以看見這些數(shù)據(jù)都存儲在網(wǎng)頁中,這樣就非常容易獲取了,這里需要注意的有兩點:一個是年齡和地址,這兩者需要在獲取之后分開進行存儲,便于后面分析(粉絲數(shù),關(guān)注數(shù)也是同理);另外一點就是性別問題,在網(wǎng)頁中我們沒有發(fā)現(xiàn)直接指示性別的關(guān)鍵詞,其實這里的性別是存放在畫紅色圈中的class的名字里面的“icon icon_boy”如果是女孩則是“icon icon_girl”,這里獲取之后我們用split去掉無關(guān)字符,只取boy和girl關(guān)鍵詞。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

我們直接用BeautifulSoup來獲取這些數(shù)據(jù):

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

這些數(shù)據(jù)也就是我們最終需要的數(shù)據(jù),我們將他們存放在Mongodb數(shù)據(jù)庫中,以便于后面的分析與導出:

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

通過分析我們發(fā)現(xiàn)每一個用戶的個人主頁鏈接都僅僅只是ID不同,我們將這些ID也存放起來,方便后面獲取這些用戶所唱的歌曲,這個后面獲取到id之后直接傳回來就可以獲得這個用戶的個人信息了。

獲取多個用戶的數(shù)據(jù)

為了獲得更多用戶的數(shù)據(jù),我們需要從用戶A進入它的粉絲頁面,獲取粉絲的ID,然后再進入粉絲B的個人主頁獲取用戶的信息,再從這些粉絲的主頁獲取他們的粉絲。類似一個遞歸的形式,思路是這樣,但在后面實際運行的時候,python老師出錯,個人感覺應(yīng)該是堆棧溢出了,目前還是沒有搞定,但是可以獲取粉絲的二級列表,對于目前的分析來說,已經(jīng)足夠了。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

在用戶的粉絲頁面我們看到用戶的粉絲列表是逐步加載的,也就是異步加載的形式,我們就只能來抓包了。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

我們可以看見用戶的粉絲數(shù)據(jù)是用json形式存儲的,在每一次加載,一共加載20名粉絲的信息,這里我們只獲取uid標簽的值。接下來問題來了,我們獲取的只是用戶的前20名粉絲,如何獲取其他的粉絲呢?方法肯定就是替換鏈接了,經(jīng)過反復的查找,發(fā)現(xiàn)在已有的鏈接中每次加載變化的起作用的字段就是這個紅色圈內(nèi)的字段:


但是這樣的一個數(shù)據(jù)是從哪里來的呢?如果是隨機生成的就沒有辦法了獲取下一級列表了。經(jīng)過查找,我們發(fā)現(xiàn)這個last_tm的值在上一級的數(shù)據(jù)中存放著。這一下就好辦了,只需要在第一次獲取用戶id的同時,將last_tm的值也同時獲取下來,下一次加載時,直接掉用即可。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

我們知道了如何分頁,如何獲取存儲的數(shù)據(jù),那么到底該循環(huán)多少次才能把所有的用戶都獲取下來呢?在最開始,我們已經(jīng)知道了用戶粉絲有多少,那么分多少也不就簡單了。用粉絲數(shù)除以每頁粉絲數(shù)20然后取整就是我們的循環(huán)次數(shù)了。

下面是獲取用戶粉絲的代碼:

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

粉絲列表分頁獲取

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

獲取每一個粉絲的id

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

進入粉絲二級列表

最后一共只爬取了8671條用戶數(shù)據(jù),數(shù)據(jù)量還是比較少,但做分析之用,基本夠了。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

存儲的數(shù)據(jù)

python爬蟲獲取歌曲數(shù)據(jù)

在上面我們已經(jīng)獲得了8千多位用戶,那么這些用戶平時都喜歡唱什么歌,他們的活躍頻率如何,這些都可以從用戶發(fā)布的歌曲中獲得一些信息。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

這里是歌曲頁的數(shù)據(jù)獲取情況,其中最為重要的就是畫紅色圈的部分了,因為這一部分數(shù)據(jù)顯示了用戶的活躍時間,已經(jīng)所使用的手機型號,這個手機型號在一定程度上就代表了這個用戶的特征,所以這個數(shù)據(jù)是極為重要的。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

同樣的,這些歌曲的列表是用異步加載的形式顯示的,我們直接來 抓包:跟上面一樣是用json來存儲信息的,我們直接解析獲取,對于手機型號這一部分沒有的,待會兒單獨獲取。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù) 「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

下面就是翻頁的問題了,我們打開heahers查看鏈接比較之后發(fā)現(xiàn)每翻一頁,連接中start便加1,而每一頁有8條數(shù)據(jù),這樣一來每一個用戶的作品我們需要翻的頁數(shù)就是作品數(shù)除以8取整即可。


最后我們單獨用一個函數(shù)來獲取時間信息:

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

最后將所獲得的數(shù)據(jù)存放起來即可。

這里再次注明一點,這里用的用戶都是之前已經(jīng)獲取的用戶他們所唱的歌曲,我將他們從CSV文件中讀取了用戶的id和作品數(shù),傳給這個程序使用。

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

最后獲取到了84萬條數(shù)據(jù),數(shù)據(jù)的樣式如下:

「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取-36大數(shù)據(jù)

總結(jié)

這次數(shù)據(jù)的抓取遇到最大的一個坎就是在做用戶的粉絲翻頁的時候,一直沒有找到last_tm這個 數(shù)據(jù),導致翻頁做不成,搞了好長時間。當時都已經(jīng)放棄了,隔了一天之后再去看,突然在前一頁中發(fā)現(xiàn)了第二頁的last_tm,那一刻真的是挺開心的。

另外在數(shù)據(jù)的抓取過程中,最好的就是在最初數(shù)據(jù)存儲的時候就經(jīng)歷將數(shù)據(jù)清洗好,比如那些不該有的字段都提前去掉在存儲,多個數(shù)據(jù)在一起的也盡量拆開再存儲,以便于后面的數(shù)據(jù)分析。

End.

轉(zhuǎn)載請注明來自36大數(shù)據(jù)(36dsj.com): 36大數(shù)據(jù) ? 「全民k歌」有什么秘密?網(wǎng)站數(shù)據(jù)分析之數(shù)據(jù)的獲取

隨意打賞

網(wǎng)站數(shù)據(jù)分析全民k歌
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 四虎影院中文字幕 | 有码一区| 久久er热这里只有精品23 | 亚洲国产成人91精品 | 国产午夜不卡在线观看视频666 | 国产乳摇福利视频在线观看 | 久久嫩草| 亚洲999| 国产高清视频青青青在线 | 国产a一级毛片午夜剧场14 | 不卡一二区 | 欧美大片国产在线永久播放 | 日本αv | 亚洲 欧美 日韩 在线 | 成人免费视频在线看 | 天天在线干 | 国内精品久久久久激情影院 | 久久新网址 | freexxxx性特大另类ww | 狠狠色丁香婷综合久久 | 香蕉国产一区二区 | 桃色婷婷 | 999视频在线 | 成年人色视频 | 香蕉人人超人人超免费看视频 | 人人揉揉香蕉大免费不卡 | 国产激情影院 | 国产一区二区福利久久 | 日韩精品国产自在欧美 | 国产在线观看一区二区三区 | 狠狠狠地啪香蕉 | 2046影院视频大全在线观看 | 久久精品国产久金国产思思 | 欧美日韩综合高清一区二区 | 美女个护士一级毛片亚洲 | 91最新视频在线观看 | 日本一级高清不卡视频在线 | 在线播放真实国产乱子伦 | 老司机福利免费 | 国产成人精品实拍在线 | 天啪天干在线视频 |