废话少说,上源码:

import re
import time
import random
import requests
def get_danmu(name,num,ep,kn):print('-------------------------------------------')print('第'+str(ep)+'集:')url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + str(num)r = requests.get(url).content.decode('utf-8')rule_01 = re.compile('<d.*?>(.*?)</d>')rule_02 = re.compile('<d(.*?)>')rule_04 = re.compile('p="(.*?),')danmu = re.findall(rule_01, r)shijian = re.findall(rule_02, r)panduan = 0for item in danmu:if kn in item:panduan = 1print(item+'   '+re.findall(rule_04, str(shijian))[0]+'秒')time.sleep(0.3)with open(name + str(ep) + '.txt', 'a',encoding='utf-8') as f:f.write(re.findall(rule_04, str(shijian))[0]+'秒'+'   '+item+'\n')passpasspassprint('-------------------------------------------')if panduan == 0:print('此集无匹配弹幕')print('-------------------------------------------')pass
def main(name,ul,kn,ep):rule_03 = re.compile('"cid":(.*?),"cover"')url = ulhead = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52'}r = requests.get(url = url, headers = head).content.decode('utf-8')a = re.findall(rule_03, r)i = 1dic = {}dic_01 = {}while i <= ep:dic['第'+str(i)+'集']=('此集Cid:'+a[i])dic_01[str(i)]=a[i]i += 1passi = 1print(dic)while i <= ep:time.sleep(random.randint(3, 4))num = dic_01[str(i)]get_danmu(name,num,i,kn)i += 1passpass
print('该程序旨通过关键字匹配B站电视剧每一集弹幕并将其加以保存')
panduan_01 = int(input('查看该程序详细细节请输入1,直接使用请输入2:'))
while panduan_01 == 2 or panduan_01 == 1:if panduan_01 == 2:name = input('输入电视剧名称:')kn = input('输入查找关键字:')ep = int(input('输入查找集数(从第一集算起):'))ul = input('输入该电视剧网址:')main(name,ul,kn,ep)print('程序运行完毕!')print('-------------------------------------------')passif panduan_01 == 1:print('该程序使用说明与声明如下:')print('使用说明:')print('    0.该程序允许使用者修改源代码,原作者不对其进行任何权力保留,对外使用时请标明来源。')print('    1.该程序适合有基本编程基础的小伙伴使用。')print('    2.该程序未做详细的错误处理模块,因而使用者应当按照提示操作,以免引发错误。')print('    3.该程序源代码中不包含任何注释信息。')print('    4.该程序需要在网速较好的条件下使用,否则可能出现加载超时导致程序报错的情况发生。')print('    5.该程序的爬弹幕功能是基于bilibili(哔哩哔哩)开发的,因此该功能只能爬取bilibili弹幕。')print('    6.该程序爬取信息的通道由bilibili官方提供,信息不涉及个人隐私,使用者可放心使用。')print('    7.该程序有部分代码需要修改才能在部分计算机上使用,比如爬虫接头的user-agent等,使用者可以根据自身情况进行重新设置。')print('    8.该程序的使用需要一些额外安装的包,使用者应确保这些包已安装,否则程序会报错。')print('    9.该程序运行时会将爬取的弹幕存储到该程序所在目录中。')print('声明:1.任何对该程序进行改码并从事计算机违法的行为与原作者无关。\n    2.请勿短时间内过多次使用该程序,否则可能被bilibili封禁账号,将由使用者自己承担损失。')panduan_01 = 2pass

爬取B站电视剧每一集包含关键字的弹幕(比如通过弹幕找穿帮镜头)相关推荐

  1. Python学习笔记-爬取B站电视剧《风犬少年的天空》弹幕并分析

    爬取B站电视剧<风犬少年的天空>弹幕并分析 写在前面 开始! 简单分析一下弹幕数据 蠢并痛苦着的学习过程... 干(烂)货环节-------弹幕的获取与整理 关于cid的获取 关于弹幕上限 ...

  2. Python爬取B站弹幕方法介绍

    Python爬取B站弹幕方法介绍 文章目录 Python爬取B站弹幕方法介绍 前言 寻找弹幕数据 编写爬虫 B站弹幕数量 新技术介绍 参考文章 前言 最近同学要做东西,需要用 B 站的视频对应的弹幕数 ...

  3. python接收弹幕_闲着没事,尝试一下用Python爬取B站弹幕呀~

    原标题:闲着没事,尝试一下用Python爬取B站弹幕呀~ 前言 最近同学要做东西,需要用 B 站的视频对应的弹幕数据做分析,于是请我帮忙爬取 B 站视频的弹幕数据. 对于爬虫而言,我们需要找到对应数据 ...

  4. 用Python爬取B站、腾讯视频、芒果TV和爱奇艺视频弹幕

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  5. 爬取b站“开启一个时代”周杰伦mv《可爱女人》弹幕,以及词云制作

     周杰伦yyds!!!!!!!!!!!  周杰伦yyds!!!!!!!!!!! 前几天学习了csdn榜一的EDG夺冠弹幕爬取以及词云图的制作,今天心血来潮就来举一反三爬取b站周杰伦<可爱女人&g ...

  6. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称"镇站之宝"的视频,拥有着数量极其恐怖的评论和 ...

  7. python爬取b站,超水的,不喜勿喷(喷也喷写高情商的)

    python爬虫爬取b站(只有部分可以) 打开b站番剧例如紫罗兰第二集:https://www.bilibili.com/bangumi/play/ep173287 打开网址,暂停,别播放(没vip也 ...

  8. 【Python】使用Python做简易爬虫爬取B站评论

    目录 一.前言 二.分析网页 三.代码 1.头 2.获取根评论 3.获取子评论 四.总代码 五.总结 一.前言 B站评论没有查找功能,就随手写了一个爬虫爬取B站评论存储到本地txt中 首先需要安装py ...

  9. Python爬取B站5000条视频,揭秘为何千万人为它流泪

    作者 | Yura编辑 | 胡巍巍来源 | CSDN(ID:CSDNnews) 导语:我们特邀作者Yura爬取B站5000条视频,为你揭秘电影<哪吒>的更多"优秀梗", ...

最新文章

  1. 2021年深度学习哪些方向比较有研究潜力?
  2. 三种方式实现自定义圆形进度条ProgressBar
  3. liunx配置本地yum源和更新aliyun yum源
  4. MySQL关系数据库
  5. Transformer architecture的解释
  6. C#中窗体的close,dispose,以及application.exit()的区别
  7. 全景图解高铁数据,谁是最有潜力的高铁城市?
  8. linux 连接两个异构网,如何在Linux(或异构)网络上共享计算机?
  9. 1451C. String Equality
  10. 发际线预警!10本程序员必读烧脑经典,你敢挑战一本吗?
  11. 售前人员应该具备的素质---理解客户的需求
  12. plsql developer13的下载、instantclient的下载
  13. GJB150-2009军用装备实验室环境试验方法新版标准
  14. SI9000学习笔记
  15. 阿古斯机器人_炉石传说三选一卡池全部卡牌一览 挑战之旅冒险模式攻略
  16. java进行微信公众号开发
  17. matlab一维数组操作,Matlab创建一维数组的具体操作讲解
  18. linux历史数据导出命令,Linux Bash history从入门到进阶
  19. sass 转换为 css
  20. 动软代码生成器基础使用

热门文章

  1. CSS样式相关知识点(一):样式表、选择器、样式属性
  2. 深度学习——感知机(perceptron)图文详解
  3. 印制板敷铜铜箔种类对插损的影响
  4. 软链接 mklink
  5. labelme 使用教程
  6. v-show与v-if
  7. cmd查询mysql版本
  8. Java中的静态变量和静态方法
  9. JS中的Ajax发送请求获取数据流程
  10. 实验07 集合查询和统计查询