千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学Python 行业资讯
【热点话题】 Python技术干货 Python学习教程 Python学习笔记 Python面试题 Python培训问答 Python培训机构哪些好 Python职场就业
当前位置:Python培训  >  Python技术干货  >  教你用python爬虫爬blibili网站弹幕

教你用python爬虫爬blibili网站弹幕

来源:千锋教育
发布人:小千
时间: 2021-01-25 09:50:00 1611539400

      哔哩哔哩众所周知是弹幕的天堂,视频观看人数越多,弹幕也就越多,今天小千就来教大家如何去使用Python开发一个爬虫来爬取B站的弹幕数据。

      1.弹幕哪里找?

      平常我们在看视频时,弹幕是出现在视频上的。实际上在网页中,弹幕是被隐藏在源代码中,以XML的数据格式进行加载的:

1

      XML和JSON、YAML一样是一种通用的标记信息表达方式,可以简单的理解为一种记录数据的格式。XML和描述网页的语言HTML非常像,所以你会在截图中看到<d></d>这样的标签。

      那么上图这个弹幕文件的url是什么呢?

      https://comment.bilibili.com/92542241.xml

      它以一个固定的url地址+视频的cid+.xml组成。只要找到你想要的视频cid,替换这个url就可以爬取所有弹幕了(b站大部分网页给出的字幕限制是1000条)。

      一个视频的cid在哪里呢?右键网页,打开网页源代码,搜索cid”就能找到:

2

      cid在网页源码中是一个很常见的词组,而我们要寻找的正确的cid都会写成"cid":xxxxxxxx的形式。为了缩小搜索范围,在后方加上一个引号会更快搜索到。

      有了正确的cid,拼好url,我们就来写爬虫吧!

      2.爬虫库到底是什么?

      基本所有初学Python爬虫的人都会接触到requests、BeautifulSoup这两个工具库,这是两个常用基础库。requests用于向网站url发起请求,以获取网页代码;BeautifulSoup用于将HTML/XML内容解析,并提取里面的重要信息。

3

      这两个库模拟了人访问网页,读懂网页并复制粘贴出对应信息的过程,能够批量地、快速地完成数据爬取。

      3.开始爬取

      观察网页,可以发现,所有的弹幕都放在了<d>标签下,那么我们需要构建一个程序获取所有的<d>标签:

      第一步,导入requests库,使用request.get方法访问弹幕url:

      import requests

      #获取页面数据html

      url=r'https://comment.bilibili.com/78830153.xml'

      r=requests.get(url)#访问url

      r.encoding='utf8'

      第二步,导入BeautifulSoup库,使用lxml解析器解析页面:

      from bs4 import BeautifulSoup

      #解析页面

      soup=BeautifulSoup(r.text,'lxml')#lxml是常用的解析器,需要提前使用pip工具安装lxml库

      d=soup.find_all('d')#找到所有页面的d标签

      #print(d)

      这样操作后,所有藏在d标签里的弹幕内容就被python抓取到了 :

4

      #解析弹幕,将弹幕、网址、时间整理为字典,最后加和成列表,共1000条数据

5

6

      数据整理之后我们还可以进行分析,例如词汇量出现频率等等,这个可以根据需求来自由处理即可。

7

      学习Python,可以参考千锋Python培训班推出的Python开发学习路线,结合千锋Python培训机构名师精心录制的全套Python视频教程,可以让你对学习Python需要掌握的知识有个清晰的了解,并快速入门Python开发。千锋Python培训机构视频教程分为三个大块:Python基础视频教程、Python高级视频教程、Python高手晋级视频教程。视频讲解通俗易懂,入门Python开发仅用此套视频足矣。想要获取免费Python学习路线和学习资料可以添加我们的Python技术交流qq群:790693323  加群找群管理领取即可,Python相关技术问题也可以加群解决,等你来哦~~~~

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>