他爬取了B站所有番剧信息,发现了这些……
本文來自「樓+ 之數據分析與挖掘實戰 」第 4 期學員 —— Yueyec 的作業。他爬取了B站上所有的番劇信息,發現了很多有趣的數據~
關鍵信息:最高播放量 / 最強up主 / 用戶追番數據 / 云追番?
起源
「數據分析」從「數據挖掘」開始,Yueyec 同學選擇了 BeautifulSoup 來爬取B站的番劇信息。部分代碼如下:
# 導入對應的 package import numpy as np import pandas as pd import requests import bs4 import time import json import matplotlib import matplotlib.pyplot as plt %matplotlib inline font_hei = matplotlib.font_manager.FontProperties(fname=r"SimHei.ttf", size=15) # 設置中文字體 def get_data(base_url, page):"""獲取B站單個頁面的視頻信息base_url: json的apipage: 頁數return 一個二維的list,16列"""url = base_url.format(str(page)) # 得到對應的urlresponse = requests.get(url, headers=header) # 發出請求,獲取回應videos = pd.read_json(response.text[37:-1]).iloc[:, 3].iloc[0] # 獲取列表videos_list = [] # 用來儲存數據for video in videos: # 循環每個番劇video_inf = [] # 用來儲存每個番劇的信息video_inf.append(video['stat']['aid']) # av號video_inf.append(video["title"]) # 標題video_inf.append(video['owner']["name"]) # 上傳者video_inf.append(time.ctime(video['pubdate'])) # 上傳時間video_inf.append(video['stat']['view']) # 觀看人數video_inf.append(video['stat']['danmaku']) # 彈幕數video_inf.append(video['stat']['reply']) # 評論數量video_inf.append(video['stat']['favorite']) # 收藏數量video_inf.append(video['stat']['coin']) # 投幣數video_inf.append(video['stat']['share']) # 分享數video_inf.append(video['stat']['like']) # 點喜歡的人數video_inf.append(video['stat']['dislike']) # 點不喜歡的人數video_inf.append(video['stat']["now_rank"]) # 排名video_inf.append(video['stat']["his_rank"]) # 排名video_inf.append(video['tname']) # 標簽video_inf.append(video['desc']) # 描述videos_list.append(video_inf)return videos_list完整的代碼可在文末查看。
數據清洗
數據分析前,我們要對數據進行清洗。
爬取數據后,發現有些視頻的播放次數為-1,可能是由于版權、封號等問題下架的視頻,大約有1000多個。
data[-1 == data['觀看次數']]
清洗掉這些臟數據,清洗完成后,就可以分析拿到手的數據了。
**
最勤勞的up主
**
開始數據分析環節,我們先來看看誰是最勤勞的up主,他貢獻了全站四分之一的番劇,猜猜他是誰?
# 查看up主投稿的數量 data.groupby("up主").count().sort_values("av號", ascending=False) # 根據up主投稿的數量排序統計發現:大致四分之一是 嗶哩嗶哩官方 發布的,排第二的則為「小清水亜美」,搬運了3218 集的番劇,第三位為 東京電視臺。
**
收藏量和播放量最高的番劇
**
收藏量和播放量最高的番劇都是哪部?結果可能會大大出于意料……
data.sort_values("收藏", ascending=False).reset_index(drop=True) # 收藏數量排序統計發現,收藏的番劇中,很多都是劇場版,可能是相對于TV版,劇場版制作更精良的緣故。在具體排序中,排第五的居然是本月10號上傳的番劇,這點很意外。
播放量最高的番劇又是哪個呢 :
分析結果:
排名最高的「工作細胞」的播放量幾乎達到了4000千萬,遠超第二部。
前五名中,「Overlord」出現了三次,果然是公認的B站霸權的番劇。
排名靠前的幾部,都是番劇的第一集。
XX云番劇?
根據用戶喜好,智能推薦音樂的應用我們都見過很多,但智能推薦番劇的好像挺少,能不能基于用戶數據,做一個推薦番劇的系統呢?
Yueyec 同學進行了實驗:
“另外爬取了用戶的追番信息來做關聯分析,可以查看到哪些番劇是關聯比較大的。”
“數據太大,只爬取了一小部分,提供的數據為 ID號為 1 到 20000 號的用戶追番數據(對應為bangumi1, bangumi2),實際爬取和處理的為 1 到450000 號的用戶。”
一系列操作之后,他得出了這些數據:
可以看到,其中很多是同一個番劇,只是季數不同。但不少番劇之間也與很高的置信度,我覺得可以用此得到一個簡單的推薦算法。”
**
中肯的總結和建議
**
通過這次6周的學習,補充了不少知識,加深了 Pandas 的使用,也了解了時間序列、自然語言等的處理方法。
雖然時間不長,但是對整個過程都有所了解,為將來學習機器學習建立了基石。
部分挑戰太簡單,建議把挑戰換成從頭到尾自己實現模型,更能加深印象和具有挑戰難度。
第五周的內容展現了不同類型的分析模板,加強了見識也提供了很多擴展的內容。因為并沒有完全看完,所以接下來會花部分時間來學習這部分。
除了 Yueyec 同學,還有很多優秀的同學的作品:
這些作品的代碼,你可以在瀏覽器中輸入這個鏈接來查閱。
優秀作品代碼
如果你也想像這位同學一樣,系統地學習數據挖掘和數據分析技能,可以了解一下《數據分析與挖掘實戰》這門課程,目前已經開到第六期,一線大牛授課,帶你在6周內成長為有真實工作能力的數據科學工程師。
現在掃碼添加小姐姐微信咨詢/報名,還可領取:
100元優惠券 + 數據分析與挖掘學習腦圖!
快來吧
我在實驗樓等你。
總結
以上是生活随笔為你收集整理的他爬取了B站所有番剧信息,发现了这些……的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 18个堪称神器的命令行工具,高效运维必备
- 下一篇: 机器学习教会我们的六件事