python3写爬取B站视频弹幕功能


Posted in Python onDecember 22, 2017

需要准备的环境:

一个B站账号,需要先登录,否则不能查看历史弹幕记录

联网的电脑和顺手的浏览器,我用的Chrome

Python3环境以及request模块,安装使用命令,换源比较快:

pip3 install request -i http://pypi.douban.com/simple

爬取步骤: 登录后打开需要爬取的视频页面,打开开发者工具台,Chrome可以使用F12快捷键,选择network监听请求

python3写爬取B站视频弹幕功能 

点击查看历史弹幕,获取请求

python3写爬取B站视频弹幕功能

python3写爬取B站视频弹幕功能

其中rolldate后面的数字表示该视频对应的弹幕号,返回的数据中timestamp表示弹幕日期,new表示数目

python3写爬取B站视频弹幕功能

在查看历史弹幕中任选一天,查看,会发出新的请求

dmroll ,时间戳,弹幕号,表示获取该日期的弹幕,1507564800 表示2017/10/10 0:0:0

python3写爬取B站视频弹幕功能

python3写爬取B站视频弹幕功能

该请求返回xml数据

python3写爬取B站视频弹幕功能

使用正则表达式获取所有弹幕消息,匹配模式

'<d p=".*?">(.*?)</d>'

拼接字符串,将所有弹幕保存到本地文件即可

with open('content.txt', mode='w+', encoding='utf8') as f:  f.write(content)

参考代码如下,将弹幕按照日期保存为单个文件...因为太多了...

import requests
import re
import time
"""
  爬取哔哩哔哩视频弹幕信息
"""
# 2043618 是视频的弹幕标号,这个地址会返回时间列表
# https://www.bilibili.com/video/av1349282
url = 'https://comment.bilibili.com/rolldate,2043618'
# 获取弹幕的id 2043618
video_id = url.split(',')[-1]
print(video_id)
# 获取json文件
html = requests.get(url)
# print(html.json())
# 生成时间戳列表
time_list = [i['timestamp'] for i in html.json()]
# print(time_list)
# 获取弹幕网址格式 'https://comment.bilibili.com/dmroll,时间戳,弹幕号'
# 弹幕内容,由于总弹幕量太大,将每个弹幕文件分别保存
for i in time_list:
  content = ''
  j = 'https://comment.bilibili.com/dmroll,{0},{1}'.format(i, video_id)
  print(j)
  text = requests.get(j).text
  # 匹配弹幕内容
  res = re.findall('<d p=".*?">(.*?)</d>', text)
  # 将时间戳转化为日期形式,需要把字符串转为整数
  timeArray = time.localtime(int(i))
  date_time = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
  print(date_time)
  content += date_time + '\n'
  for k in res:
    content += k + '\n'
  content += '\n'
  file_path = 'txt/{}.txt'.format(time.strftime("%Y_%m_%d", timeArray))
  print(file_path)
  with open(file_path, mode='w+', encoding='utf8') as f:
    f.write(content)

最终效果

python3写爬取B站视频弹幕功能

python3写爬取B站视频弹幕功能

之后可以 做一些分词生成词云或者进行情感分析,有时间在说吧....

大家可以在下方给小编留言你学习的心得,也感谢你对三水点靠木的支持。

Python 相关文章推荐
python的类变量和成员变量用法实例教程
Aug 25 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python 将pdf转成图片的方法
Apr 23 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
python实现超市商品销售管理系统
Oct 25 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
Python字符串及文本模式方法详解
Sep 10 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 Python
Python与C/C++的相互调用案例
Mar 04 Python
机器学习经典算法-logistic回归代码详解
Dec 22 #Python
利用python将xml文件解析成html文件的实现方法
Dec 22 #Python
python实现数据预处理之填充缺失值的示例
Dec 22 #Python
NetworkX之Prim算法(实例讲解)
Dec 22 #Python
Python实现控制台中的进度条功能代码
Dec 22 #Python
Python中的探索性数据分析(功能式)
Dec 22 #Python
Python反射用法实例简析
Dec 22 #Python
You might like
PHP安全配置
2006/10/09 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
Yii中表单用法实例详解
2016/01/05 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
Prototype String对象 学习
2009/07/19 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
webpack4简单入门实例
2018/09/06 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python使用socket远程连接错误处理方法
2015/04/29 Python
浅谈Python处理PDF的方法
2017/11/10 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
Python面试题集
2012/03/08 面试题
写给女朋友的道歉信
2014/01/08 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书