比如“https://www.bilibili.com/video/BV1zU4y1p7L3”这个视频,有1.2万条弹幕

首先,B站视频的弹幕是有专门的接口传递数据的:http://comment.bilibili.com/***.xml,中间的*号是播放视频的id,怎么获取?

播放视频的时候按F12键,选择找到heartbeat,拉到最下方formdata内有cid字样即视频id

访问地址,http://comment.bilibili.com/309778762.xml拿到弹幕,但是这个接口只提供1000多条弹幕数据

接下来,我们将数据全部爬取下来,本次就不使用xpath爬虫来提取数据,使用BeautifulSoup来提取数据

网上安装BeautifulSoup教程很多,这里不表,导入BeautifulSoup库

from bs4 import BeautifulSoup
import requests
import re

爬取数据部分

url = 'http://comment.bilibili.com/309778762.xml'
html = requests.get(url)
html.encoding='utf8' soup = BeautifulSoup(html.text,'lxml')
results = soup.find_all('d')

前面4行理解起来问题不大,常规步骤,关键在最后一行find内,可以表述问,查找文内所有标签“d”的内容

因为弹幕的内容都存放在标签d内

关于find_all的解析,请参看:https://www.cnblogs.com/keye/p/7868059.html,讲的很清楚

然后就是对获取数据的处理,只需要保留弹幕内容

for i in results:
i = str(i)
i = re.findall('">(.*?)</d>', i, re.S)[0]
print(i)

全部脚本如下

# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
import requests
import re url = 'http://comment.bilibili.com/309778762.xml'
html = requests.get(url)
html.encoding='utf8' soup = BeautifulSoup(html.text,'lxml')
results = soup.find_all('d') for i in results:
i = str(i)
i = re.findall('">(.*?)</d>', i, re.S)[0]
print(i)

打印输出

至于爬出来的数据怎么用,可以统计字频,获取做成词云(下图),那是后面研究的了

python爬虫(BeautifulSoup)爬取B站视频字幕的更多相关文章

  1. 爬虫之爬取B站视频及破解知乎登录方法(进阶)

    今日内容概要 爬虫思路之破解知乎登录 爬虫思路之破解红薯网小说 爬取b站视频 Xpath选择器 MongoDB数据库 爬取b站视频 """ 爬取大的视频网站资源的时候,一 ...

  2. Python爬虫一爬取B站小视频源码

    如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 项目源码 from fake_useragent import UserAgent import requests import time ...

  3. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  4. Python爬取B站视频信息

    该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...

  5. Python爬虫之爬取站内所有图片

    title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...

  6. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  7. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  8. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  9. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

  10. python爬虫实战---爬取大众点评评论

    python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...

随机推荐

  1. shell学习之保存数据库

    自动备份 Mysql 数据库脚本 #!/bin/bash #author by wxp #used to backup mysql practise USER=root PASSWD=1234 HOS ...

  2. FLink写入Clickhouse优化

    一.背景 ck因为有合并文件操作,适合批量写入.如单条插入则速度太慢 二.Flink写入ck优化 改为分批插入,代码如下 DataStream<Row> stream = ... stre ...

  3. Luogu P10869 LCMs 题解 [ 黄 ] [ lcm ] [ 最短路 ]

    LCMs:很好的数论和构造题. 显然我们不可以直接建图跑最短路. 于是考虑分讨. 倍数关系 答案显然为 \(\max(a,b)\). 相等关系 答案显然为 \(0\). \(\gcd(a,b)> ...

  4. 本地部署 DeepSeek:小白也能轻松搞定!

    大家好,我是晓凡. 写在前面 最近DeepSeek太火了,以至于每个小伙伴都想试试.DeepSeek 的到来可谓是开启了全民AI热潮. 本以为DeepSeek本地化部署有多难,实际上验证后很简单,操作 ...

  5. 实战AI大模型辅助编程:新安江水文模型和SCE-UA优化算法的移植与实现

    新安江水文模型与 SCE-UA 优化算法是水文学和水资源管理领域的重要工具,二者结合使用可以有效模拟流域的水文过程并优化模型参数. 新安江水文模型是一种概念性水文模型,主要用于模拟流域的降雨-径流关系 ...

  6. [JSOI2008]火星人 题解

    原题链接:\(luogu\)$\ \ $ \(BZOJ\)$\ \ $ \(LOJ\) 题目大意:有一个可以支持插入和修改的字符串,定义函数 \(\operatorname{LCQ(x,y)}\) 表 ...

  7. intellij debug模式提示 Method breakpoints may dramatically slow down debugging 解决办法

    直接上图........ 点击图中按钮  或者 快捷键(Ctrl - Shift -F8 ) 出现下图  

  8. 收集 Spring Boot 相关的学习资料

    收集 Spring Boot 相关的学习资料,Spring Cloud点这里 重点推荐:Spring Boot 中文索引 推荐博客 纯洁的微笑-Spring Boot系列文章 林祥纤-从零开始学Spr ...

  9. Processing 使用pixels[]像素数组绘制矩形rect和圆形ellipse

    余温 两次绘制了棋盘格,有了一些经验了,顺着学习态势,我们再接再厉,挖一些技巧.这一次要使用pixels[]数组绘制矩形rect和圆形ellipse,也就是代替rect()和ellipse()两个函数 ...

  10. jmeter 压测tcp协议

    https://www.cnblogs.com/TestSu/p/10552239.html