B站何同学毕业视频 弹幕爬取+生成词云

本文介绍了如何爬取B站何同学毕业视频的弹幕并生成词云。通过检查网页源代码,找到弹幕数据的URL,下载文件并用Notepad++以UTF-8编码打开,解析弹幕后,利用代码实现词云的生成。
摘要由CSDN通过智能技术生成

【何同学】我毕业了!!


前女友很喜欢何同学,视频一出就在QQ空间分享,通过自制弹幕词云我也来了解了解这位优秀的同学。
通往人生巅峰的路是一步步走去的;通往堕落的路,亦然。
终究还是要放下,努力优秀吧!

首先打开视频所在页面,右键检查选择Network
在这里插入图片描述
接着点击弹幕列表下的查看历史弹幕,点击红点右边的清空
在这里插入图片描述
接着点击7月30号,出现了seg.so?type=1&oid=376435111&date=2021-07-30,发现了网址在这里插入图片描述
点击进去下载好文件用Notepad++打开,切换为UTF-8编码,发现弹幕果然存储在里边
在这里插入图片描述
获取到弹幕存储网址之后就简单了

完整代码如下

import requests #第三方工具
import re #正则
import csv #处理保存csv文件格式
import wordcloud #词云库
import matplotlib.pyplot as plt
import jieba #用来分词

#模拟浏览器发送请求,接受返回的数据
headers = {
   
    # 用户代理 身份证
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
    # 账号已登录信息
     'cookie'
在Python中爬取B站视频弹幕并制作成地图词云展示,需要几个步骤:首先抓取网页数据,然后处理弹幕内容,最后生成词云并将其放在地图上。这里是一个简化的示例,假设我们使用了`requests`、`BeautifulSoup`库用于网络请求和HTML解析,`lxml`库作为BeautifulSoup的一个替代选择,`wordcloud`和`geopandas`库来创建词云和地图,以及`pyecharts`库来展示地图。 ```python import requests from bs4 import BeautifulSoup import re import pandas as pd from wordcloud import WordCloud import geopandas as gpd from pyecharts import options as opts from pyecharts.charts import Map # 爬取B站弹幕数据 def get_bilibili_danmu(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'lxml') danmu_list = soup.select('.d-share .d-mid .c-danmu-item') # 提取丹字列表 return [danmu.text for danmu in danmu_list] # 清理并统计词频 def process_danmu(danmus): cleaned_danmus = [re.sub(r'\W+', '', danmu) for danmu in danmus] # 去除标点符号和空格 frequency = {word: cleaned_danmus.count(word) for word in set(cleaned_danmus)} return frequency # 创建词云 def create_wordcloud(frequency): wc = WordCloud(font_path='simhei.ttf', width=800, height=600, background_color='white').generate_from_frequencies(frequency) return wc.to_image() # 获取中国省份信息 china_province_data = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) # 使用词云数据绘制地图 def map_with_wordcloud(province_data, wordcloud_img): chart = Map() chart.add("", province_data['name'], china_province_data.geometry, maptype="China") img_option = opts.ImageOption(src=wordcloud_img) chart.options设置 = { "visualMap": { "max": max(frequency.values()), "inRange": {"symbolSize": [5, 10]}, }, "series": [{"type": "map", "label": {"show": False}, "itemStyle": img_option}] } chart.render("bilibili_danmu_map.html") # 示例用法 url = "https://www.bilibili.com/video/BV某个视频ID" # 替换为实际的视频URL danmus = get_bilibili_danmu(url) frequency = process_danmu(danmus) wordcloud_img = create_wordcloud(frequency) map_with_wordcloud(china_province_data, wordcloud_img)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值