python爬取b站弹幕_如何爬取B站弹幕

前言

主要记录自己完成爬虫的思路:从how to do到what to do这是一个拿 python 练手的项目,虽说是入门级,但其余爬虫也万变不离其宗 ̄へ ̄

[源代码地址 Github:bili-danmu](https://github.com/regaliastar/bili-danmu)4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

过程

1. 弹幕究竟是什么玩意

首先,让我们看看B站客户端是如何接收到弹幕的

这就需要让我们看看网页的源代码了

随便打开一个视频网页如下:89427639d0a794d0368b4490faf91d665ebead71.png

那么,弹幕是怎么加载进网页面的呢?

接下来让我们回忆一下http请求的过程:

0. 3次握手建立TCP连接

1. 浏览器得到页面,也就是html文件

2. 根据html文件里如

可以想象,弹幕文件应该是在浏览器得到页面后像服务器请求得来的,也就是说,它隐藏在浏览器下载的文件中!不妨先假想一下:弹幕文件应该是一个JSON格式或者是XML格式的文件 这样才方便应用与管理

右键`审查元素`,打开网络面板,分析浏览器抓取下来的包,其中有一个文件引起了我们的注意:

9054f9d09ca615a2b446783ffa4b3e84923474cb.png

这是一个xml文件,也是我们猜测的弹幕格式之一,查看它的内容:

0fa35247749465b03c33575a0b16d389e69febc2.png

很惊喜的发现,这不正是弹幕文件吗!  ̄へ ̄

4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

2. 如何得到弹幕文件

查看弹幕文件的文件名:864a5751ba602041a056e28a620f8f1a9679cd77.png

全称`http://comment.bilibili.com/6154070.xml` 且看资源标识符`6154070.xml` 这应该便是唯一标志弹幕文件的文件名了

关于`6154070.xml` 这个文件名是如何来的?这只有在网页源代码中一探究竟。右键查看网页源代码,查找与`6154070.xml` 有关的字段:

194f9bf51763ce1d01a9309525de6efb4bffec8e.png

但现在我们还是不能放心,对比其他视频后才终于发现,原来正是这个`

分析完毕,接下来就是最快的编码工作了  ̄へ ̄

如何编写爬虫

其实分析到了这里,代码编写也是水到渠成的事了我选择了 requests 与 lxml 这种轻量级的库来编写

Talk is cheap. Show me the code. 废话不多说,完整代码请看

[Github:bili-danmu](https://github.com/regaliastar/bili-danmu)4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

结语

对于爬虫来说,往往分析页面花费的时间大于编写代码的时间。总而言之,大概就是这么个流程,依葫芦画瓢也能搞定大部分网站内容的爬取  ̄へ ̄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值