python 抓取抖音直播弹幕 爬取直播弹幕_python 抓取抖音直播弹幕


现在随着直播越来越风靡,越来越多人沉迷其中,直播中的弹幕也是人们喜欢看直播的一个原因,现在我们就针对直播中的弹幕进行爬取,由于我们只想跑一次程序,所以我下面就针对录播的弹幕进行爬取。

我们选取了我比较喜欢的英雄联盟主播东北大鹌鹑 作为我们弹幕的爬取对象,看看我们的嘟嘟怪的弹幕是不是这么好玩。


python 抓取抖音直播弹幕 爬取直播弹幕_python 抓取抖音直播弹幕_02


一.导入爬虫所需的python库


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_03


由于斗鱼直播网页是动态网页,所以我们采用了selenium这个自动化测试工具进行爬取,在使用这个模块之前,需要先安装chromedriver,而且chromedriver的版本需要和你的chrome浏览器版本对应。


python 抓取抖音直播弹幕 爬取直播弹幕_chrome_04


二.分析网页

我们使用谷歌浏览器的开发者工具F12看一下我们的目标,首先进入到这个录播的页面,然后有一个弹幕列表的这个按键,我们需要点到这个按键:


python 抓取抖音直播弹幕 爬取直播弹幕_vue如何在当前页点击替换当前页_05


点击之后,弹幕就在右边排列出来,这就是我们想要的结果,我们下一步的目标就是,希望点击拖动条,然后把弹幕的内容和弹幕的发送时间全都保存下来:


python 抓取抖音直播弹幕 爬取直播弹幕_python 抓取抖音直播弹幕_06


三.开始敲代码

先初始化这个类,设置一下参数,代码如下:


python 抓取抖音直播弹幕 爬取直播弹幕_vue如何在当前页点击替换当前页_07


我们在分析的网页的时候已经提到过,需要先点击弹幕列表,这样网页才能更新出弹幕的内容,代码如下:


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_08


经过上一步之后,网页内容已经更新,我们下面要获取到弹幕的内容以及弹幕的发送时间,还是通过xpath,通过selenium得到的是一个数据,可以把当前页所有弹幕内容和弹幕发送时间获取到 ,还有一点就是,点击之后,不能立马就获取,需要等待页面加载完成,不然获取不到东西 代码如下:


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_09


我们现在已经获取到当前页的所有弹幕和所有弹幕的发送时间,我们要进行下一步,就是滑动拖动条,继续更新我们的弹幕列表,通过chrome的开发者工具,获取到拖动条长度为30px,总长是540px,通过调试可知,拖动条一次拖动2px,可以刚好更新整个弹幕内容:


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_10


所以我们直接上代码:


python 抓取抖音直播弹幕 爬取直播弹幕_python 抓取抖音直播弹幕_11


四.将爬取的结果保存到文件

目前将爬取到的结果保存下来的方式有两种,一种是保存到本地文件(txt,csv,….),还有一种保存到数据库

1.保存到本地文件,直接上代码:


python 抓取抖音直播弹幕 爬取直播弹幕_chrome_12


2.保存到数据库


python 抓取抖音直播弹幕 爬取直播弹幕_词云_13


五.爬虫的完整代码:


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_14


六.对爬下来的弹幕做词云分析

现在我们已经已经把斗鱼的弹幕爬取了下来,我们就需要对爬取的内容进行一下简单的分析,这次我选择做一个词云,看看主播弹幕主要的关键词都是些什么,咱们说干就干:

首先我们要用到wordcloud这个词云模块,需要自己先行安装,还需要安装一个字体包,连接如下:

s3-us-west-2.amazonaws.com/notion-static/b869cb0c7f4e4c909a069eaebbd2b7ad/simsun.ttf

接着下载simsun.ttf。

由于中文文化博大精深,我们需要先对中文的句子进行分词,中文分词的工具有很多种。有的免费,有的收费。

今天给大家介绍的,是如何利用Python,在你的笔记本电脑上,免费做中文分词。

我们采用的工具,名称很有特点,叫做“ 结巴分词 ”,大家可以通过pip install jieba来安装这个工具。


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_15


七.结果展示


python 抓取抖音直播弹幕 爬取直播弹幕_斗鱼直播画面怎么弄到自己网页上_16


怎么样,是不是很符合东北大鹌鹑的主播形象呢?国服第一艾希的嘟嘟嘟,日常带比心小姐姐套路怪,日常直播到屁股疼不得不停播的鹌鹑哥。