Python | 巧用Python实现B站弹幕爬取系统!

 

 

 

 

 

在B站挖了一个月洞无果之后,打算还是要对B站做出点什么,于是我盯上了他们的弹幕系统!没错就是那名不虚传的B弹!

Python资源共享群:484031800

 

 

 

 

没错今天我们就是要来爬取B站的视频弹幕!

爬取B站弹幕说着简单实现难,你不仅仅要找到弹幕视频的api接口

还要掌握一系列的表达式及编程语法

但是

我并不慌,身为一名没多少进ICU的996患者(误)

让我们开始coding吧!

 

 

 

 

使用语言:Python3.7

在开始编写之前我们先对B站弹幕系统进行一个了解

 

 

 

 

 

我们先使用一点技术手段将B站弹幕系统单独分开来

然后打开审查元素进行api接口的查询

 

 

 

 

这里我先发一条弹幕

可以看到网络捕捉到了一条post的请求方式

点开之后逐步查询

 

 

 

 

成功找到接口!

实际上在GitHUb上bilibili的api接口就已经被公布了

但是作者认为还是手动去找比较靠谱一点

可以看到接口返回的都是我们要爬取的弹幕

我们打开Python,导入requests库

re库!

注意爬取弹幕要用到正则表达式到后面我会说明

我们先把几个模块导入进去

  •  
import requests as reqimport re

然后开始编写循环,毕竟不能只爬一次对吧

  •  
import requests as reqimport rewhile True:  video_number = input("av:")

条件触发video_number 在这里数值很重要 所以有必要加入一个条件判断

  •  
import requests as reqimport rewhile True:  video_number = input("av:")  if video_number == int:    print("int type");  else:

接下来就相当于字符拼接,这里我就不多说明了...

  •  
import requests as reqimport rewhile True:  video_number = input("av:")  if video_number == int:    print("int type");  else:    api_key = "https://api.bilibili.com/x/v1/dm/list.so?oid="+video_number    repon = req.get(api_key) #获取api    repon = encoding = "utf-8" #将编码转换为utf-8    xml = res.text 

基本上响应都成功

接下来我们开始编写正则表达式

先看下xml里面的数据

 

 

 

 

从<d 开头我们开始截取到 >然后中间就是我们要进行获取的值

后面跟上</d>和xml变量

具体代码

  •  
re.findall("<d.*?>(.*?)</d>",xml)

然后接下来我们对其赋值变量,打印看看

  •  
import requests as reqimport rewhile True:    avnumber = input("av:")    if avnumber == int:        print("OK")    else:        urlapi = "https://api.bilibili.com/x/v1/dm/list.so?oid="+avnumber        res = req.get(urlapi)        res.encoding = "utf-8"        xmlString = res.text        danmukus = re.findall("<d.*?>(.*?)</d>",xmlString)

 

 

 

 

 

神奇的bilibili

这样子看起来不太美观我们for循环输出

 

 

 

 

 

 

 

 

啊~舒服多了

拜拜

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值