python爬取B站弹幕数据并生成词云图

1.分析目的:用户在观看视频时会产生丰富的行为数据,如弹幕。通过分析这些行为数据,可以了解用户的兴趣偏好、观看习惯等

2.请求数据

3.这里选取首页的热门视频,打开网页的开发者模式,点击网络刷新页面,点击查看历史弹幕

4.这里再次刷新,能看到一个数据包里面又想要的弹幕数据。

5.这里的地址作为请求数据,查看历史弹幕需要登陆,这里需要放入cookie信息

import requests
import re
for page in range (6,9):  #爬取六号到八号的弹幕
    url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=1356728331&date=2023-12-0{page}'
   
Python中,爬取B(Bilibili)视频弹幕生成词云通常需要通过几个步骤完成: 1. **安装所需库**:首先,你需要安装`requests`库用于发送HTTP请求,`bs4`库用于解析HTML,以及`pydub`处理音频转文本(因为B弹幕通常是基于视频时间戳显示的),`jieba`进行分词处理,`wordcloud`库用来生成词云。 2. **获取视频信息**:访问视频页面,使用`requests.get()`获取HTML源码,然后通过BeautifulSoup解析出视频ID,以便后续构造URL。 3. **下载弹幕数据**:找到B的API或者使用第三方工具(如`bilibili_api`),根据视频ID获取弹幕字幕文件,它是一个.json格式的数据,包含了弹幕的文字和对应的时间点。 4. **提取文字**:遍历弹幕文件,提取每个弹幕的文字内容,忽略非汉字字符。 5. **语音转文本**:如果你想要使用视频声音作为上下文,可以先用`pydub`将音频转换成文本。注意,这一步不是必需的,但可以增加词云的关联度。 6. **分词与统计**:使用`jieba`对提取出来的文字进行分词,统计每个词语的出现频率。 7. **生成词云**:最后使用`wordcloud`库创建词云图,你可以自定义字体、颜色、大小等参数,展示最常出现的词语。 ```python # 示例代码片段 import requests from bs4 import BeautifulSoup import json from pydub import AudioSegment from jieba import lcut from wordcloud import WordCloud def get_video_info(url): # ... 获取视频ID ... video_id = 'VXXXXXXXXXXXXX' # 替换为你实际的视频ID response = requests.get(f'https://api.bilibili.com/x/v2/dm/get?mid={video_id}&danmu_type=0') data = json.loads(response.text) # 提取文字和频次 words = [] for item in data['data']['items']: words.extend(lcut(item['info'])) word_counts = collections.Counter(words) # ... 进行其他处理 ... # 生成词云 wordcloud = WordCloud(...).generate_from_frequencies(word_counts) wordcloud.to_file('bilibili_danmu_wordcloud.png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值