当前位置: 首页 > news >正文

摸鱼用python获取弹幕的两种方式【前者简单,后者数据好看】

嗨害大家好鸭!我是小熊猫~

相信大家对于 “弹幕文化” 已经相当熟悉啦

你不是一个人在看——这就是弹幕网站的存在感。
它形成了新的“抱团”观看模式,
也真正实现了无时空距离的社交。

有网友表示,弹幕简直比剧情还有趣。
看似简单的寥寥几句弹幕,
却也是无数观众在那一刻最想要传达的感想。

如果说中年人使用社交平台更多是进行一种信息交换,
希望社交平台简洁有序,
那么年轻人的社交平台则更加丰富有趣。
当下年轻人正在通过信息技术展现自身独特的社交属性,
正是如此才会有弹幕文化、各种缩略语的出现。

而相比点赞、评论、转发等方式,
弹幕的“共时性”打破了观众之间地域、时间、空间的限制,
满足了年轻观众在特定时刻的及时互动与社交需求。

本文源码、其他python资料电子书:点击此处跳转文末名片获取

在这里插入图片描述

今天就教大家如何获取弹幕的数据

环境

  • python 3.8
  • pycharm
  • requests
  • re

获取方式一: <简单, 但是弹幕很少>

先打开网站,找到你想要的视频,然后在网址bili前加个i,这样你就可以直接的找到弹幕的地址
复制地址打开,你就可以看到你想要的弹幕数据,写代码时直接请求这个地址就可以了

部分网页弹幕数据

在这里插入图片描述

请求数据

url = '平台审核不给过'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
print(response)

请添加图片描述

获取数据

response.encoding = 'utf-8'
print(response.text)

请添加图片描述

解析数据

content_list = re.findall('<d p=".*?">(.*?)</d>', response.text)
content = '\n'.join(content_list)
print(content_list)

请添加图片描述

保存数据

with open('方式一.txt', mode='a', encoding='utf-8') as f:f.write(content)

请添加图片描述

获取方式二: <复杂一点点, 弹幕比较多,按日期来>

先回到视频播放地址,打开开发者工具,选择其他日期天数,然后会出现带有当天日期的数据包,右边就是我们要找的url地址

在这里插入图片描述
在这里插入图片描述

获取URL

在这里插入图片描述
在这里插入图片描述

也出现了乱码的弹幕数据

请添加图片描述

请求数据

url = f'网站开发者工具自己获取'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36','cookie': '加自己的'
}
response = requests.get(url=url, headers=headers)

解析数据

content_list = re.findall('[\u4e00-\u9fa5]+', response.text)
content = '\n'.join(content_list)

翻页

for page in range(1, 24):url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=967256583&date=2023-02-{page}'

保存数据

with open('方式二.txt', mode='a', encoding='utf-8') as f:f.write(content)
print(content_list)

请添加图片描述

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

http://www.lryc.cn/news/25111.html

相关文章:

  • 【C++】继承与多态
  • 每日分享(微信社区小程序/h5/圈子论坛贴吧交友/博客/社交)
  • 第51章 初识第3方阿里云短信验证发送服务
  • CSGO社区服搭建服务器架设游戏服务端教程
  • 【Linux学习】基础IO——系统调用 | 文件描述符fd | 重定向
  • PLC实验—西门子S7 1200读取超声波传感器数据
  • 一次Linux系统密码修改失败事件
  • C语言循环控制语句Break,goto,continue语句讲解
  • Zabbix“专家坐诊”第183期问答汇总
  • 以太网协议和DNS
  • 【设计模式】原型模式与建造者模式
  • QT之Http请求
  • 何谓dB , dB怎么理解?
  • 【数据聚类|深度聚类】Unsupervised Deep Embedding for Clustering Analysis(DEC)论文研读
  • Nuxt.js项目开发过程遇到的问题以及对Nuxt.js的学习与总结
  • JavaSE:异常机制
  • Go mockito 使用说明 (github/mockey)
  • Spring Boot+Vue前后端分离项目练习01之网盘项目的搭建
  • 超详细MySQL(免安装版)安装与配置
  • STM32F1,F4,L1系列禁止JTAG和SW引脚方法
  • NVIDIA CUDA初级教程视频学习笔记1
  • CEC2005:星雀优化算法(Nutcracker optimizer algorithm,NOA)求解CEC2005(提供MATLAB代码)
  • 工作实战之密码防重放攻击
  • 如何编写测试用例?
  • 5.排序算法之二:选择排序
  • Ubuntu18系统安装:node及node版本管理工具nvm部署前端项目
  • 统计学 假设检验
  • 【C++】哈希
  • 「TCG 规范解读」PC 平台相关规范(3)
  • 这篇教你搞定Android内存优化分析总结