听说B站弹幕鬼畜多?我不信

B站弹幕多?我不信

点我获取源码,欢迎star

在我眼里爬虫永远只有四大步骤,虽四大步骤里面包含了许许多多可无限衍生,但新手的入门至老鸟的解密,这都基于此四大步骤。

  1. 确定URL,构造请求头
  2. 发送请求,获取响应
  3. 解析响应,获取数据
  4. 保存数据

目标:根据视频BV,获取B站视频弹幕

代码地址如下:

抓包确定URL:

导入:

视频都有一个唯一区分视频:BV号

那么视频的URL规则为:‘https://wwww.bilibili.com/video/BV{BVID}’

找一下弹幕的地址,直接search,即可!如下

在这里插入图片描述

由以上抓包可知,弹幕的URL:‘https://api.bilibili.com/x/v1/dm/list.so?oid=oid’,

我们获取到oid那么这一步就完成了

来,回头去找一下oid从何而来呢?

据老夫多年经验指引,他一定在视频URL里面。(其实当时也找了挺久的,甚至逆向那一手,断点调试、调用堆栈等等什么都用出来了。最终还是功夫不负有心人,找到了)

其实回头看,oid是等于video_URL页面里面的cid参数的(验证了Payne式猜想)。过程是难受的

在这里插入图片描述

URL,其参数规则也找到了,那么还不就随我为所欲为了。只要拿到视频地址,那不就可以直接拿到弹幕了么。of course!

此处省略3万字(请求,解析,网络原理。。。)

其实当时知道两个方法都去试了,JS那个就不说了,有兴趣的盆友,可以去搞一下

说说这个提取cid参数吧,我用的是正则,这种情况最好是用正则,不过也看个人喜好吧。

可以回头看第二张图,初一乍看我好像不会,啊哈哈~

经过优化后(主要是看了其他视频的那啥之后):写出这个神奇的正则

cid = re.findall('.*?cid":+(\d{9})+', text)[0]

猜你喜欢

转载自blog.csdn.net/wzp7081/article/details/107371508