python爬虫(BeautifulSoup)爬取B站视频字幕
比如“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站视频字幕的更多相关文章
- 爬虫之爬取B站视频及破解知乎登录方法(进阶)
今日内容概要 爬虫思路之破解知乎登录 爬虫思路之破解红薯网小说 爬取b站视频 Xpath选择器 MongoDB数据库 爬取b站视频 """ 爬取大的视频网站资源的时候,一 ...
- Python爬虫一爬取B站小视频源码
如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 项目源码 from fake_useragent import UserAgent import requests import time ...
- from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...
- Python爬取B站视频信息
该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...
- Python爬虫之爬取站内所有图片
title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...
- 如何手动写一个Python脚本自动爬取Bilibili小视频
如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...
- Python爬虫之爬取慕课网课程评分
BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- scrapy进阶(CrawlSpider爬虫__爬取整站小说)
# -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...
- python爬虫实战---爬取大众点评评论
python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...
随机推荐
- Linux:yum
yum介绍 [yellow dog updater,modified],一个在Fedora和RedHat以及SUSE.Centos中的shell前段软件包管理器 能够自动的从指定的服务器自动下载RPM ...
- C#中的内部函数(子函数)
private bool GetMedicalAdvice(string zyID, out DataTable dtM, out DataTable dtD) { bool result = fal ...
- 如何解决:Android Studio (version 4.1); Flutter plugin not installed and Dart plugin not installed errors
出现的现象 android studio 4.1已经安装了flutter和dart插件,但是执行 flutter doctor依然报错. [!] Android Studio (version 4.1 ...
- .NET中优雅使用Patch: JsonPatch
引言 在现代 Web API 开发中,我们经常需要对资源进行部分更新(Partial Update).传统的 PUT 请求会要求发送整个对象,而 PATCH 请求可以仅发送需要更新的字段.ASP.NE ...
- 首批!天翼云率先通过ITU国际标准认证!
近日,天翼云通过国内唯一人工智能云平台领域的ITU国际标准评估--中国信通院组织的ITU-T F.AICP-GA人工智能云平台技术规范国际标准和<智算工程平台能力要求>国内标准一致性评估, ...
- redis 执行性能检测指令报错:-bash: redis-benchmark: command not found
最近在看redis相关的内容,redis有自带检测性能的命令: -bash: redis-benchmark: command not found 碰到的所有资料中均提示不能在redis客户端中执行, ...
- [记录点滴] 一个Python中实现flatten的方法
之前如果想使用flatten,一般借助于numpy.ndarray.flatten. 但是 flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用. 最近找到一个轻便 ...
- windows10专业版代码永久激活
1."Win+R"打开运行对话框,输入命令slmgr.vbs -xpr 可以查看当前系统的激活信息 2. 在电脑图标右键,打开属性,查看自己win10系统版本 3. 在开始菜单右键 ...
- RabbitMQ(六)——路由模式
RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...
- go测试跨包代码覆盖率
Golang虽然只是一门编程语言,但也为我们提供了不少工具,其中测试工具是最常用的,大概 前提概要 以前看书,只说了用什么工具去做覆盖率,和基本的使用,当时看了也没想太多.后面真正做项目了,老大要求比 ...