自闭症康复网,内容丰富有趣,生活中的好帮手!
自闭症康复网 > bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!

bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!

时间:2019-01-19 14:33:50

相关推荐

bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!

时隔一年,嵩哥带来他的新作《雨幕》。

他依旧认真创作,追求高品质,作品在发表之前已听了五百遍以上。

如此高品质的音乐,大家如何评价呢?通过哔哩哔哩上的视频弹幕,感受一下。01 实现思路

首先,利用哔哩哔哩的弹幕接口,把数据保存到本地。接着,对数据进行分词。最后,做了评论的可视化。02 弹幕数据

平常我们在看视频时,弹幕是出现在视频上的。实际上在网页中,弹幕是被隐藏在源代码中,以XML的数据格式进行加载的。

比如:/123072475.xml一个固定的url地址 + 视频的cid + .xml

只要找到你想要的视频cid,替换这个url就可以爬取所有弹幕了(b站大部分网页给出的字幕限制是1000条)。一个视频的cid在哪里呢?

右键网页,打开网页源代码,搜索 "cid": 就能找到:

03 保存数据到本地

有了数据的接口链接,我们就可以利用request模块,获取数据了。

然后,再利用xpath简单的解析xml,就可以把所有的弹幕信息汇总到一个列表里了。最后,把列表转化成dataframe,保存到本地。# 许嵩新歌《雨幕》# bilibili视频弹幕文件url = '/123072475.xml'# 发送请求response = requests.get(url) xml = etree.fromstring(response.content)# 解析数据dm = xml.xpath("/i/d/text()") print(dm) # list# 把列表转换成 dataframedm_df = pd.DataFrame(dm, columns=['弹幕内容']) print(dm_df)# 存到本地# 解决了中文乱码问题dm_df.to_csv('雨幕-弹幕.csv', encoding='utf_8_sig')

保存的csv数据:

04 对数据进行分词

制作词云前,需要把弹幕数据进行分词。

关于jieba分词,可以参考:/dnxbjyj/article/details/72854460# jieba分词dm_str = " ".join(dm) words_list = jieba.lcut(dm_str)# 切分的是字符串,返回的是列表words_str = " ".join(words_list)05 词云可视化

通过创建词云对象、设置词云参数,最终生成图片,保存到本地。# 读取本地文件backgroud_Image = plt.imread('1.jpg')# 创建词云wc = WordCloud( background_color='white', mask=backgroud_Image, font_path='./SourceHanSerifCN-Medium.otf',# 设置本地字体max_words=2000, max_font_size=100, min_font_size=10, color_func=random_color_func, random_state=50, ) word_cloud = wc.generate(words_str)# 产生词云word_cloud.to_file("yumu.jpg")#保存图片

如果觉得《bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。