Python爬虫,最新的B站弹幕和评论爬虫,你们要的冰冰来啦!

网站建设5年前发布
74 0 0

最近想爬下B站的弹幕和评论,发现网上找到的教程基本都失效了,毕竟爬虫和反爬是属于魔高一尺、道高一丈的双方,程序员小哥哥们在网络的两端斗智斗勇,也是精彩纷呈。,当然了,对于爬虫这一方,爬取网站数据,一般目的都是比较明确的,比如我这里就是为了冰冰,废话不多说,开干!,这里先声明一点,虽然网络上的整体教程都失效了,但是有一些步骤还是可以参考的,比如我们可以知道,对于弹幕数据,我们是可以通过如下的一个接口来获取的。,​​https://comment.bilibili.com/xxxx.xml​​,在浏览器打开可以看到如下:,202303061523171542f3c8030d015e68a856ef7a6ae6872a937e974,数据还是非常干净的,那么下一步就是看如何获取这个 xml 的 url 地址了,也就是如何获取 324768988 ID;,接下来我们搜索整个网页的源码,可以发现如下情况;,20230306152100770b5b6175d636949b1066a4ffa0db1d867564618,也就是说,我们需要的 ID 是可以在 script 当中获取的,下面就来编写一个提取 script 内容的函数。,拿到所有的 script 内容之后,我们再来解析我们需要的数据。,最后,我们再把整体代码封装成一个类,就完成了弹幕抓取的数据收集工作了。,结果如下:,202303061523184109a3c97183e99d172903b5d5c93b0033583c855,对于评论数据,可能要复杂一些,需要分为主(main)评论和回复主评论的 reply 评论。,我们通过浏览器工具抓取网页上的所有请求,然后搜索 reply,可以得到如下结果:,20230306152318556e17d51f8f2b4d608441852336fbb83b9a1b728,我们先来看看 main 请求,整理后通过浏览器访问如下:,20230306152101649055b152603249b9a28653dcd695970f828c818,也可以直接通过 requests 请求;,2023030615233716ce7dd435e7e9bd7f681650ee20574af48f74412,通过观察可以得知,响应消息里的 replies 就是主评论内容,同时我们还可以改变 url 当中的 next 参数来翻页,进而请求不同的数据。,这里我们再关注下 rpid 参数,这个会用于 reply 评论中。,再来看看 reply 评论,同样可以使用 requests 直接访问,同时 url 当中的 root 参数就是我们上面提到的 rpid 参数。,20230306152101f660ac102e6cbf257280247711ee248626b763477,我们厘清了上面的关系之后,我们就可以编写代码了;,爬取过程中:,20230307014505c9092f786ede09f8482660cc5eaada8dd42dac212,这样,针对一个冰冰视频,我们就完成了上千评论的抓取;,下面我们简单做一些可视化动作;,先来看下我们爬取的数据整体的样子:,20230306152102e4453f13684c64fa42e635b4924fc421364b09416,因为数据中有一些空值,我们来处理下:,下面就可以作图了,GO!,使用 pyecharts 还是我们的首选,毕竟编写容易,20230306152319c7f84b40587d25b3e66808a050a89b1cba0825698,20230306152320a5d3cc3337458c51d99440645494b5cf1ff7be139,20230306152105580473f482b83e1f69c879153f56c9a1db8b36319,好了,今天的分享就到这里,喜欢冰冰就点个在看吧!

© 版权声明

相关文章