网络爬虫爬取b站励志弹幕并生成词云(精心笔记总结)!

哔哩哔哩 后浪 弹幕 获取 保存 csv 并制作词云 '''' 找出真实的弹幕列表的url 保存 csv 文件 制作词云图 ''' import re import requests import csv # headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'} # url = 'https://api.bilibili.c 阅读详情

bilibili献给新一代的演讲《后浪》

此文转载文,著作权归作者所有,如有侵权联系小编删除!


前言
在进入本文之前,我很想给大家推荐b站这个视频,3080.2万播放,27.9万条弹幕。这个视频之火不是因为漂亮的小姐姐,也不是什么很傻,很逗人发笑的视频,而是因为那满满的正能量,以及对于年轻人的激励,我们要活成我们的样子,我们是后浪,我们遇见这个时代,时代遇见今天的我们。

弱小的人才习惯嘲讽和否定,而内心强大的人从不吝啬赞美和鼓励!我们就是后浪,奔涌吧!后浪,奔涌吧!新一代!相信你们看了这个视频会内心波涛汹涌。在b站待了这么长时间,很荣幸可以看到这样的视频。

正文
1:我们今天的目标是爬取此视频的弹幕,并生成词云。一方面是为了做笔记,总结今天学到的,另一方面,我是为了分享经验,以及让大家看到这满是正能量的弹幕词云,足以冲击你的内心。
2:实现思路
我们主要用到以下几点知识

<1 爬虫技术
python库: requests , re, csv, jieba,imageio,wordcloud

<2分析网站: bill网站特定视频

<3查找数据来源的api: 弹幕数据来源的api

3:具体实现:

我们来打开billbill这个视频主页:

在这里插入图片描述
我们要拿到的是弹幕数据,我们可以指定某天的弹幕数据,当然通过爬虫,我们可以全部拿下,今天,我们随便指定日期,都是一样的道理。

既然是分析网站,自然是右键查看源码了。
在这里插入图片描述
这里面有数据,但不是我们的方向,我们可以清空数据。我们要拿到弹幕的api。那么,需要抓包。我们点击b站弹幕列表下面的查看历史弹幕。

在这里插入图片描述
看到上面那个日历没有,今天是2/17,那我就拿今天的弹幕。

下面进行抓包,我们清空network下面的所有,现在我们点击日历上的2/17,我们观察会出现什么。来看
在这里插入图片描述
不知道你有没有注意到这样一段 :

seg.so?type=1&oid=186803402&date=2021-02-17

我分析这个包,后面是一个日期格式的参数。那我一定会想到,只要我按照这样的格式,我可以指定任意一天。很可能这个就是我们要寻求的方向。我们点进去。来看
在这里插入图片描述

这里放大了了,希望能看到这个蓝色的一行。很熟悉的,是url,下面是请求相关的。我们点进去这个url。会发现是一个文件,这个文件并不是普通的文件。你可以下载,然后用notepad打开,指定格式utf-8编码后,会显示这样。
在这里插入图片描述
我们看到里面是有弹幕中文的,但是也有不认识的东西。这里至少可以证明我们的url找对了。这样的弹幕数据不是我想要的,因为我还要生成词云,说以还是以代码来处理整个过程。我会解释相关的代码。
来看代码
下面展示一些 内联代码片。

#流程
#导入工具
import requests #第三方工具
import re #正则
import csv #处理保存csv文件格式
import jieba #用来分词的国人开发的库 import wordcloud
import imageio # 读图片
import wordcloud #词云库

#目标网站
url = ' https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=186803402&date=2021-02-17'
#模拟浏览器发送请求,接受返回的数据
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': '_uuid=DB17FC3E-C33B-0402-FEC8-6D5F54FFD75826400infoc; buvid3=524A488F-FA38-4505-A9FD-80539B19E3FB184978infoc; sid=a2zoyf7s; buvid_fp=524A488F-FA38-4505-A9FD-80539B19E3FB184978infoc; DedeUserID=650586683; DedeUserID__ckMd5=673346effe04fe44; SESSDATA=dc4b2c16%2C1628474903%2Cc95da*21; bili_jct=f92980128fe4681476212c6cfe3d0ff7; CURRENT_FNVAL=80; blackside_state=1; rpdid=|(J|)JR|||Rm0J uYukmkkmJk; fingerprint3=dc6c77bb0dfdccdd39bc9efbb780630d; fingerprint=f29725bb59f7984374f945e2ebddc362; buvid_fp_plain=524A488F-FA38-4505-A9FD-80539B19E3FB184978infoc; fingerprint_s=0a7abb581b9ea03451e614a51a3d4b2b; LIVE_BUVID=AUTO8416133069733130; bp_video_offset_650586683=491829482594004200; bsource=search_baidu; PVID=1; bfe_id=1e33d9ad1cb29251013800c68af42315'
}
resp = requests.get(url,headers=headers)
print(resp) # 打印输出一下看是否可以正常访问
print(resp.text)#以文本的形式打印网页源代码
# 获取弹幕数据
#中文
Danmu = re.findall("[\u4e00-\u9fa5]+",resp.text) # 用到的正则,匹配中文
print(Danmu)
# 4.数据保存
for i in Danmu : #相当于一个遍历保存
    with open('B站弹幕.csv','a',newline='',encoding='utf-8') as f :
        writer = csv.writer(f) #这里可以理解为传入文件句柄
        #文件句柄可以帮助我们找到该文件,作用是这个。
        danmu = []
        danmu.append(i)
        writer.writerow(danmu)
# 绘制词云
f = open('B站弹幕.csv','r',encoding='utf-8')
txt = f.read()
#print(txt)

# 1.分词处理
textlist = jieba.lcut(txt)
print(textlist)
string1 = ' '.join(textlist) #拼接成整个字符串
#print(string)
mk = imageio.imread(r'心.jpg')
w=wordcloud.WordCloud(
    width = 1000,
    height =700,
    background_color ='white',
    font_path='msyh.ttc',
    mask =mk,
    scale = 18,
    stopwords = {'','\n','\r'},#停用词
    contour_width =5,
    contour_color ='red'

)
# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string1)
#将词云图片导出到当前文件夹
w.to_file('out1.png')


1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

我觉的代码很详细了,但是给大家在稍微说点就是为何要指定user-agent,以及cookie。
指定user-agent是为了模拟浏览器访问,否则网站会认为你是爬虫,是写程序去访问的,可能会被卡擦掉。当然还有指定高级的线程池什么的,在这里是没必要的。cookie,保存了你登陆网站的信息,很像一个身份证,如果你不指定cookie,那么网站会提示你登录的。可以把他理解为身份信息,当你访问网站时,网站就给你存一个cookie。

这里面有一个jieba库,是我们国人开发的,有点自豪。是用来分词的,具体可以去查阅文档理解相关的源码和方法。

re库是导入用来写正则语法的库,是用来匹配的。规则很简单,但是东西比较多哦。当然我们也可以直接去网站查看规则。很多匹配的语法规则都有。csv是一种文件格式,也可以去查看库理解,并不是难事。词云时,需要读取csv格式文件

代码中wordcloud中的参数mk代表指定根据的图片绘制词云,这里要求图片背景尽量为白色,里面可以有你想要的形状。更详细的请查看资料了解相关的方法。

还有就是关于with open()这部分代码中的newline参数,
当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到\n,\r或\r\n都可以作为换行标识,并且统一转换为\n作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为\n,输入什么样的,就保持原样全输入。当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。
当在输出模式时,如果新行符为None,那么所有输出文本都是采用\n作为换行符。如果设置为’’或者\n时,不作任何的替换动作。如果是其它字符,会在字符后面添加\n作为换行符。所以这个参数的设置非常重要。

还有一个方法就是’ ‘.join(),代表以’ '拼接字符串。比如 string2 = ‘,’.join(‘abcd’)
那么会输出a,b,c,d。就是这样的意思。

我们来看代码的实现结果,这里有我的几个词云,好与不好,都与图片的选择有关,简单展示一下。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行完这段代码后,控制台可能会打印你不需要的信息,注释掉即可,那是我测试用的。还有就是不要看到控制台打印出红色字体就认为出错了。你得知道他在说啥。像下面是没有错误的。
在这里插入图片描述

就写到这里了,相关的请遵守csdn博客协议。期待与大家共同进步。

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

 

爬虫实例6(获取哔哩哔哩网站《后浪》弹幕并可视化显示)(pyecharts词云,pandas库) 声明,只用于学习研究爬虫 1.《后浪》弹幕词云如下 2.代码流程 一是分析网站,弹幕是和视频是分离,在开发者工具里面找到弹幕的网址。 二是请求网站。获取到网址后request 三是解析网站 四是制作词云 3.完整代码 #!/usr/bin/python #导入相关库 import requests,json,pandas from bs4 import BeautifulSoup from pyecharts import WordCloud #请求网页 def get_html(url): 阅读详情

相关推荐

100天精通Python丨黑科技篇 —— 21、大语言模型_100天精通python快速入门到黑科技

ChatGPT 是 OpenAI 推出的一种基于 GPT-3/4 的聊天机器人。chatgpt 的颠覆性影响主要体现在提高语言交流的便捷性、个性化服务、自动化客服和教育娱乐等方面,这些应用可以为用户带来更多的便利和乐趣,同时也为企业提供了更多的服务和商机。本文收录于,是由的硬核博主倾力打造,分基础知识篇和黑科技应用两大部分,欢迎订阅本专栏,订阅后可私聊进Python全栈VIP交流群(问题解答、互相帮助)还可领取20GPython视频和100本互联网行业电子书。

m0_60452141的博客 2479

用Python爬取《后浪》弹幕,绘制生成专属词云,看看“后浪们”都在评论些什么

请查收,最近B站献给新一代的青年宣言片。 国家一级演员何冰走上舞台,以青年宣言《后浪》为词,认可、赞美与寄语年轻一代。在UP主们的青春混剪中,属于年轻人的光芒正在闪耀。“你们有幸 遇见这样的时代 但时代更有幸 遇见这样的你们” 用Python爬取《后浪》弹幕,看看“后浪”都在评论些什么? 一、找到评论链接 进入B站《后浪》播放页面,按F12键后,刷新页面。 评论链接在红色标记下对应的包,蓝线上方Request URL即为评论链接https://api.bilibili.com/x/v1/dm/list.s

qq_43735106的博客 3424

Python实战项目3:b站弹幕采集

上一篇对b站的视频评论爬取进行了探讨,这一篇是弹幕。

lyccomcn的博客 2304

关于《后浪》的B站弹幕分析总结(三)——怎么制作好看的交互式词云

本篇借助分析B站弹幕,着重讲解词云制作的几个方法。

Lady_Stark的博客 2307

AI大模型学习(13)小白也能学会的10分钟豆包大模型的python教程1

豆包AI大模型API是字节跳动推出的智能对话接口服务,开发者可以通过简单的HTTP请求调用强大的AI能力,实现智能问答、内容生成等功能。

isoft888的专栏,致力于C#/python分享物联网、大数据,神经网络的等领域,欢迎讨论交流! 1001

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1354

朋友圈已经被《后浪》刷屏?用Python看一下微博和知乎别人的看法

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 欢迎点击左上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。 这几天,朋友圈已经被《后浪》刷屏,相信大部分人都看过了小破站献给新一代的演讲(商业片)。 习惯性地打...

qq_46614154的博客 512

NVIDIA Jetson AGX Xavier设置风扇转速、工作模式及性能监控

Xavier的风扇在开机之后是默认关闭的,每次重启都需要手动打开风扇,后续可能考虑修改bashrc文件进行自动开启 这个是显示当前风扇的转速,默认应该是0,表示关闭,最大是250 cat /sys/devices/pwm-fan/target_pwm 可以通过修改该文件的值来修改风扇转速 vim /sys/devices/pwm-fan/target_pwm 我一般使用的是100这个值 作者:ryan_ren 链接:https://www.jianshu.com/p/d3c2041f7f7d 来源:简书 著

weixin_43877080的博客 1万+

为什么我还在优快云写文章?一段陪伴学习的历程。

当然这些其实你不得不承认,确实有这方面的不足。官方有没有因为付费专栏去调整博主文章展示的权重呢?如果让用户失去体验感,就名声不好了。 尽管如此,csdn还是有很多好文的,一路走来其实帮到了我很多,有人说这里是垃圾堆,🐕都不用。但是我相信很多人都用过,而且你一定见到过写的很精彩的文章,给人茅舍顿开的文章。我是真的见过。只是因为水文很追求流量话的商业逻辑影响。...

jgdabc的博客 894

基于IMU的纯惯性导航轨迹绘制实践与优化

本文深入探讨了基于IMU的纯惯性导航轨迹绘制实践。通过修改开源组合导航算法KF-GINS,屏蔽GPS更新并简化地球参数,实现了仅依赖IMU数据的轨迹解算。文章详细介绍了代码改造、轨迹可视化方法,并分析了误差累积的根本原因,为深入理解惯性导航原理与传感器融合的必要性提供了宝贵的实践经验。

ff678的博客 395

手把手教你用示波器测试DDR5 DRAM信号完整性(附眼图分析技巧)

本文详细介绍了如何使用示波器测试DDR5 DRAM信号完整性,包括眼图分析技巧。从DDR5的核心挑战、测试设备选型到实测工作流程,提供了全面的指导。特别强调了DFE功能验证和系统级协同测试,帮助工程师解决信号完整性问题,提升测试效率。

g2h3i4j5的博客 1151

计算机毕业设计Python+大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计

本文介绍了一个基于Python和大模型的智能音乐推荐系统。系统采用四层架构设计,整合用户行为、音频特征和文本语义等多模态数据,通过深度协同过滤与大模型增强模块实现个性化推荐。创新性地提出了三模态动态融合机制和冷启动优化策略,显著提升了推荐准确率和用户体验。实验表明,该系统在Precision@20指标上较传统方法提升47%,冷启动准确率提升117%,并能满足实时推荐需求。该系统适用于音乐流媒体平台、智能硬件等领域,为音乐产业数字化转型提供了关键技术支撑。

全网计算机/大数据辅导(自媒体)道祖第一人、全网粉丝100W+,专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理。 1314

Pytorch transformers tokenizer 分词器词汇表添加新的词语和embedding

NLP添加新词汇

7322

CMU电竞产业夜:6个问题揭示电竞技术真实能力图谱

电子竞技已从亚文化走向高门槛工程化产业,其核心技术不再局限于游戏开发或直播运营,而是融合实时网络工程、赛事规则建模、边缘AI推理与可交互观赛协议的交叉体系。理解电竞,首先要破除‘重内容轻基建’‘重热爱轻验证’的认知误区——真正的技术价值体现在对95分位网络抖动的建模能力、将BP规则转化为可执行代码的解析能力、以及在毫秒级信号冲突中预判观众注意力的能力。这些能力广泛应用于职业赛事制作、选手数据产品化、AI辅助解说及低延迟观赛系统等场景。本文基于卡内基梅隆大学(CMU)Esports Industry Nigh

weixin_30369041的博客 369

最邻近点对问题(Closest-Pair Problem):二维的分治解法详解

低维时,最邻近点对问题可以利用分治求解。但是网络上相关资料良莠不齐,对于3维甚至难有有价值的参考。最近恰巧梳理了123维最邻近点对问题的相关知识,故在此分享。这是该系列的第二篇,介绍二维情况的分治解法。

Carl_Rabbit的博客 1万+

openclaw update时出现Skipped:this OpenClaw install isn‘t a git checkout,and the package manager解决方案

本文主要介绍了openclaw update时出现openclaw update时出现Skipped:this OpenClaw install isn’t a git checkout,and the package manager解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

爬取b站视频的弹幕

爬取b站视频弹幕,并生成词云图。

m0_63283334的博客 1192

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

bilibili视频爬取python_Bilibili 《后浪》短视频评论递归爬取极简教程

Bilibili 《后浪》短视频评论递归爬取极简教程背景短视频《后浪》这两天引起了很多网友的讨论,正负面皆有,但是我们必须用“科学地”眼光取看待问题,所以获取大量数据来支撑我们的分析是必要的,所以本次的探索主题就是获取Bilibili上《后浪》的全部评论数据。说明虽然现在爬虫教程真的很多,但是这次爬取Bilibili评论主要是介绍编程中递归处理数据手法的运用,所以还是有些意义的。环境准备编程语言:...

weixin_39736606的博客 626

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python3网络爬虫--最新爬取B站视频弹幕 so文件(附源码)

这里把A C站称为小破站小破站在2023年将弹幕接口的返回值从.xml改成了.so文件返回值示例:很明显部分数据是被加密了。本次通过调研protobuf协议通过搭建环境,使用Python撰写代码实现了对B战弹幕的解析,对于大多数人而言,可能搭建本地环境那里有些难,在此奉上封装好的dm_pb2.py文件点击下载,大家放在自己的脚本同级目录下即可。

懷淰メ的博客 6392

爬虫实战:爬取B站视频弹幕 (python)

文章目录前言一、需求二、网页分析2.1 找到弹幕数据所在三、爬虫代码四、词云 前言 环境 Python 3.7 Pycharm 相关模块 requests re 一、需求 示例视频 需求:爬取该视频2022年1月 所有 弹幕 二、网页分析 2.1 找到弹幕数据所在 因为有些数据不是直接显示在html上的,属于动态数据,需要异步加载得到。 步骤1:打开network,或者直接使用F12选到network。 Network面板主要由5个部分组成,包括控制器、过滤器、概览、请求列表、概要,下面简单介绍下这5个部

总裁余(余登武)博客 2184

Python教你爬取某站视频弹幕,并绘制词云图(内含完整源码)

前言 嗨喽,大家好(o゚v゚)ノ 这里是魔王 [课 题]: Python爬取某站视频弹幕或者腾讯视频弹幕,绘制词云图 [知识点]: 1. 爬虫基本流程 2. 正则 3. requests >>> pip install requests 4. jieba >>> pip install jieba 5. imageio >>> pip install imageio 6. wordcloud >>> pip install

python56123的博客 7020

B站弹幕爬取教程:Python爬虫技术助你轻松获取弹幕数据

在日常观看B站视频时,我们经常会看到视频下方的弹幕。弹幕不仅仅是观众的互动,它还蕴含着大量的信息,通过分析弹幕内容,我们可以挖掘出视频的情感趋势、用户的情感态度等有价值的数据。今天,我们将带着大家一起爬取B站的视频弹幕,并对弹幕进行情感分析和关键词提取。通过爬取 B 站的视频弹幕,并结合情感分析与关键词提取,我们能够获取到有价值的观众情绪数据,并进行更深入的分析。在此基础上,您可以探索更多的应用场景,比如实时监控视频情感变化,分析特定时段的情感趋势等。

m0_68604571的博客 4379

关于学习python生产词云图的笔记

** 词云图制作笔记 前期准备** 今天学习了一下python制作各种形状的词云图 首先我遇到的问题是python没有装在c盘 在cmd中找不到python和其下的pip 解决方法是在我的电脑属性高级设置path中添加一个含有python程序的路径 之后碰到的问题就是pip下载数据太慢 后来查询网络知道了我们可以从清华的镜像下载该库 具体指令为(下面这句是在用pip下载matplotlib) C:...

weixin_44813954的博客 978

python中词云制作_如何使用python制作词云

前言今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图:效果图一:效果图二:根据效果图分析的还是比较准确的,小说中的主人公就是“程理”,所以出现次数最多。图中有两种模式,一种是默认的模式,另一种是自己添加图片作为背景。下面我就带大家一起来学习怎样去生成词云!wordcloud的安装对于新人来说安装wordcloud模块就是一大关,我们一般都是通过Pychar...

weixin_36274181的博客 813

超简单VideoView播放网络视频和本地视频

控件 &amp;lt;VideoView android:id=&quot;@+id/video_details&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;200dp&quot;/&amp;gt; activity Uri uri = Uri.parse(&

ZHUHUOHUO的博客 4819
上一篇: 过年你被催婚了吗?爬取相亲网站,看看当下年轻小姐姐的择偶观
下一篇: Python爬取链家北京租房信息!北京租房都租不起啊!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值