如何用Python爬取B站上1.4w条马老师视频数据来分析
这篇文章给大家介绍如何用Python爬取B站上1.4w条马老师视频数据来分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
啪的一下你就进来了吧!
如果有经常刷B站的小伙伴,肯定都知道B站鬼畜现在的顶流是谁?
印度:没错正是在下
那必须是当代大师浑元形意太极拳掌门人「马保国」先生啊!
实话讲,马保国走进大家视野还是他5月份PK被人连续KO三次。
不过现在他在鬼畜区的主要素材却是马保国更早时候的一些视频。
比如2020年一月份,右眼被蹭了一下的马老师面带微笑,为我们生动形象地讲述了健身房里的年轻人是如何不讲武德,偷袭他的故事。
在视频里,他控诉踢馆的年轻人 " 不讲武德 " ,劝他 " 耗子尾汁 " 。可以作为B站入站题目,建议全文背诵。
B站这个小机灵鬼,甚至还给马老师专门开了专栏,这为我们后续爬取数据也带来了便利。
跟平时爬取B站不太一样,在B站的马保国专栏下,F12可以轻松找到接口。
https://api.bilibili.com/x/web-interface/web/channel/multiple/list?channel_id=3503796&sort_type=hot&page_size=30
解析JSON后我们需要的数据都可以获得。
其中要提到一点,url中的offest
从解析上一个url的json中获取,如如下图所示。
通过简短的爬虫代码,
很快啊,很快就爬取了1.4万条马保国先生的视频数据。
def get_data(url,headers):
data_m = pd.DataFrame(columns=['id','name','view_count','like_count','duration','author_name','author_id','bvid'])
html = requests.get(url,headers=headers).content
data = json.loads(html.decode('utf-8'))
offset = data['data']['offset']
print(offset)
for j in range(30):
data_m = data_m.append({'id':data['data']['list'][j]['id'],'name':data['data']['list'][j]['name'],
'view_count':data['data']['list'][j]['view_count'],'like_count':data['data']['list'][j]['like_count'],
'duration':data['data']['list'][j]['duration'],'author_name':data['data']['list'][j]['author_name'],
'author_id':data['data']['list'][j]['author_id'],'bvid':data['data']['list'][j]['bvid']},ignore_index=True)
return(offset,data_m)
我们先进行简单的数据整理(播放量有的是万为单位)后,将1.4万个视频按照播放量和点赞量制作了一个散点图。
可以看到什么才是"顶流"的话题,播放量几百万,点赞量几十万的相关视频特别多。
按照播放量排序一下。
第一名就是今年一月份相声泰斗马老师经典单口相声!!!
那按照点赞量呢?
第一名是来自鬼畜up主的伊丽莎白鼠"武 林 高 手"!
而懂王与马老师的联动表现也很优秀!
其中几个特效向的表现更是突出!
由于马老师的语录太过经典,我决定再补充爬一下它的弹幕。
# 绘制词云图
stylecloud.gen_stylecloud(text=' '.join(text1),
collocations=False,
font_path=r'C:\Windows\Fonts\msyh.ttc',
icon_name='fas fa-play-circle',
size=653,
output_name='马保国词云图.png')
Image(filename='马保国词云图.png')
耗子尾汁真是门面担当!
婷婷、英国大理石、塔门说也夹杂其中。
关于如何用Python爬取B站上1.4w条马老师视频数据来分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。