當前位置:
首頁 > 知識 > 你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

打開今日頭條,查看更多圖片

作者 | 徐麟

責編 | 胡巍巍

前言

很多人提到B站,首先想到的就會是二次元或者鬼畜。

你相信逛 B 站也能學編程嗎?

上個月,筆者也發表了一篇關於B站鬼畜視頻的文章:

大數據解讀B站火過蔡徐坤的「鬼畜「區巨頭們

你相信逛 B 站也能學編程嗎?

然而,實際上B站其實是個非常神奇的網站,裡面的內容可謂是包羅萬象,有趣的彈幕文化也能極大地提高大家的體驗,B站也逐漸地成為了一個用來學習的「神器」。

你相信逛 B 站也能學編程嗎?

近期B站獲得了央視網的力挺,報道稱B站已經成為了越來越多的年輕人的學習陣地,正所謂「我在B站看番,你卻在B站學習」 ,今天我們就來爬取B站上那些播放量、彈幕量排名靠前的編程類視頻,一起去了解B站的另一面。

數據來源

我們此次的數據主要來源於B站搜索框中輸入「編程」後的視頻列表及相關信息:

你相信逛 B 站也能學編程嗎?

B站一共提供了物種視頻排序的方式,每種能夠返回前1000個視頻,我們分別爬取五種排序所得到的1000個視頻之後對5000個視頻進行排序,最終得到了2000多個編程類視頻的信息。

同時我們也增加了一些篩選條件,使得最終獲取到的編程教學視頻更具代表性:a.所屬分類為科技類 b.視頻時長大於60分鐘,部分代碼如下:

## 獲得列表
def get_list(i,j):
attempts = 0
success = False
while attempts < 5 and not success:
try:
url = "https://search.bilibili.com/all?keyword=%E7%BC%96%E7%A8%8B&from_source=banner_search&order={}&duration=4&tids_1=36&page={}".format(i,j+1)
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:54.0) Gecko/20100101 Firefox/54.0",
"Connection": "keep-alive"}
cookies ="v=3; iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; webp=true; ci=1%2C%E5%8C%97%E4%BA%AC; __guid=26581345.3954606544145667000.1530879049181.8303; _lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8; _lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; monitor_count=1; _lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5; __mta=189118996.1530879050545.1530936763555.1530937843742.18"
cookie = {}
for line in cookies.split(";"):
name, value = cookies.strip().split("=", 1)
cookie[name] = value
html = requests.get(url,cookies=cookie, headers=header).content
bsObj = BeautifulSoup(html.decode("utf-8"),"html.parser")
script = bsObj.find_all("script")[3].text
info = json.loads(script.replace("window.__INITIAL_STATE__=","").split(";(function()")[0])["allData"]["video"]
return info
except:
attempts = attempts+1
return []
coding_all = []
type = ["click","stow","dm"]
for i in type:
for j in range(50):
this_coding = get_list(i,j)
coding_all = coding_all+this_coding

最終,我們獲取到了如下的視頻信息列表:

你相信逛 B 站也能學編程嗎?

數據分析

獲取到數據之後,我們首先關注的是這些視頻的主要內容,通過視頻給出的標籤,繪製整體內容總結的詞雲圖:

你相信逛 B 站也能學編程嗎?

可以看到,上面的詞雲除了編程語言,技術之外包含了許多類似於學習,教程這樣的通用描述性辭彙,我們需要進一步從中篩選出與編程語言、技術相關的詞雲,提高詞雲圖的效果:

你相信逛 B 站也能學編程嗎?

可以看到,經過篩選後的詞雲圖效果要好很多,其中基本上囊括了現在比較火的編程語言,如Java、Python 以及數據結構、機器學習這些技術類的內容,下面我們來看一下各編程語言的播放量及彈幕量對比:

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

我們此次將Linux也劃分到語言類中,可以看到目前基本上就是處於Python、C語言、Java三組鼎力的態勢,Python略微領先於其他兩種語言,這也一定程度反映了當今的整體發展趨勢。由此可見,B站的內容也是與時俱進,適合年輕人去學習了解編程整體發展趨勢。

看完了語言類,我們再來看一下具體的技術類排行榜:

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

可以看到,前端、人工智慧、數據框、爬蟲這些大家比較關心以及公司有較大需求量的技術都出現在了榜單中,在B站如果能將自己所要從事領域的視頻認真學習,也會有很大的提高,部分代碼如下:

## 分組統計
coding_tag = dataframe_explode(coding,"tag")
coding_tag["tag"] = coding_tag["tag"].apply(str.lower)
coding_tag["type"] = coding_tag["tag"].map({tag_dict["tag"][k]:tag_dict["type"][k] for k in range(tag_dict.shape[0])})
coding_tag = coding_tag.groupby(["title","pic","author","arcurl","tag","type"],as_index=False).agg({"play":"max","danmu":"max","favorites":"max","review":"max"})
tag_count = coding_tag.groupby(["tag","type"],as_index=False).agg({"title":["count"],"play":["sum"],"danmu":["sum"],"favorites":["sum"]})
tag_count.columns = ["tag","type","num","play","danmu","favorites"]
## 繪製圖片
coding_stat = tag_count[tag_count["type"]=="語言"]
coding_stat.sort_values("play",ascending=False,inplace=True)
attr = coding_stat["tag"][0:10]
v1 = coding_stat["play"][0:10]
bar = Bar("語言類播放量TOP10")
bar.add("播放數量", attr, v1, is_stack=True, xaxis_rotate=30,xaxis_label_textsize=18,
xaxis_interval =0,is_splitline_show=False,label_text_size=12,is_label_show=True)
bar.render("語言類播放量TOP10.html")

精品視頻

分析完整體視頻內容的分布情況,我們再來看下那些最為精品的視頻,由於B站以彈幕文化為特色,我們就依據彈幕量來為大家精選出一些非常不錯的視頻,首先是所有編程類視頻的TOP20:

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

我們下面分別看一下三足鼎立中的Python、Java、C語言分別彈幕量排名前十的視頻信息:

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

你相信逛 B 站也能學編程嗎?

寫在最後

B站的阿婆主為為大家提供了特別多的編程學習資源,大家在學習知識的同時,也需要注意的就是相應的版權信息。

上傳視頻一定要確認版權不存在問題之後再去上傳,另外如果發現有存在侵權的問題,也要及時跟視頻作者進行反饋,及時將侵權視頻下架。

另外,希望大家能夠多多支持技術類的視頻和阿婆主,如果覺得不錯就不要吝惜手中的硬幣,讓更多的技術類阿婆主有動力為大家提供更多更好的視頻內容。

作者簡介:徐麟,某互聯網公司數據分析獅,哥大統計狗,喜歡用R&Python玩一些不一樣的數據。個人公眾號:數據森麟(ID:shujusenlin)。

聲明:本文為作者投稿,版權歸對方所有。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

諾基亞的「翻身」之戰
移動互聯網這十年

TAG:CSDN |