【爬虫】基于requests的B站直播实时弹幕爬取
- 网页分析
进入Network在众多响应中寻找和弹幕相关的API,
图3-1 B站直播房间页面的开发者工具界面preview
图3-2
在3-2展示的页面中可以查看到URL中有参数roomid,
在获取到url、相关参数以及headers后,通过requests.post()获取解析直播间弹幕。结果如图3-3:
图3-3 获取的部分弹幕
import requests import time import io,sys |
- 定义Danmu类
其中包含了url,请求头headers,POST传递的参数以及get_danmu()方法。在headers中可以增加更多header中的参数,增加不被反爬机制发现的可能性。关键代码如下:
def __init__(self): # 弹幕url self.url = 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory' # 请求头 self.headers = { 'Host': 'api.live.bilibili.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0', } # 定义POST传递的参数 self.data = { 'roomid': ' 21396545', 'csrf_token': '', 'csrf': '', 'visit_id': '', } |
- 构造get_danmu()方法
def get_danmu(self): # 获取直播间弹幕 html = requests.post(url=self.url, headers=self.headers, data=self.data).json() # 解析弹幕列表 for content in html['data']['room']: # 获取昵称 nickname = content['nickname'] # 获取发言 text = content['text'] # 获取发言时间 timeline = content['timeline'] # 记录发言 msg = timeline + ' ' + nickname + ': ' + text print(msg) |
# -*- encoding: utf-8 -*-
#@time: 2020/11/15 22:54
#@author: chenTao
#@file: dnmu.pyimport requests
import time
import io,sys
# import
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')class Danmu():def __init__(self):# 弹幕urlself.url = 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'# 请求头self.headers = {'Host': 'api.live.bilibili.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0',}# 定义POST传递的参数self.data = {'roomid': '21396545','csrf_token': '','csrf': '','visit_id': '',}def get_danmu(self):# 获取直播间弹幕html = requests.post(url=self.url, headers=self.headers, data=self.data).json()# 解析弹幕列表for content in html['data']['room']:# 获取昵称nickname = content['nickname']# 获取发言text = content['text']# 获取发言时间timeline = content['timeline']# 记录发言msg = timeline + ' ' + nickname + ': ' + textprint(msg)if __name__ == '__main__':# 创建bDanmu实例bDanmu = Danmu()i = 1while i < 10:i += 1# 暂停0.5防止cpu占用过高time.sleep(0.5)# 获取弹幕bDanmu.get_danmu()
【爬虫】基于requests的B站直播实时弹幕爬取相关推荐
- b站直播消费记录爬取
基于python的Appium进行b站直播消费记录爬取 前情提要 因工作需要,需要爬取相关数据,之前是爬取网页数据,可以用python的requests和Selenium进行爬取.但b站的直播消费数据 ...
- 基于scrapy的B站UP主信息爬取
文章目录 思路分析 项目目录 代码 结果 思路分析 本次爬取的信息,包括UP主的mid.昵称.性别.头像的链接.个人简介.粉丝数.关注数.播放数.获赞数. 我的思路是,首先,选择一位B站比较火的UP主 ...
- python爬虫:requests+pyquery实现知乎热门话题爬取
文章目录 前言 1. requests库的基本使用 2. pyquery库的基本使用 3. 爬取知乎热门话题 前言 有些东西想忘都忘不了,而有些却转背就忘了!这段时间忙于找工作和学习mysql,把爬虫 ...
- Crawler:基于requests库+urllib3库+伪装浏览器实现爬取抖音账号的信息数据
Crawler:Python之Crawler爬取抖音账号的信息数据 目录 输出结果 代码设计 输出结果 更新-- 代码设计 from contextlib import closing import ...
- Python爬虫入门教程07:腾讯视频弹幕爬取
前言
- 爬虫系列(1):极简爬虫——基于requests和re爬取安居客上海二手房价数据
爬虫系列(1):极简爬虫--基于requests和re爬取安居客上海二手房价数据 入坑爬虫已经有一年多,一直想好好记录下从各位前辈和大佬处学到的技术,因此开了一个爬虫系列,想借此细致地介绍和演示其中的 ...
- 爬虫实战(一)—利用requests、mongo、redis代理池爬取英雄联盟opgg实时英雄数据
概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider 包括了项目的所有代码. 此篇文 ...
- 手把手教你实现『B站直播』弹幕实时分析
大家好,我是阿辰,今天来教大家如何实现『B站直播』弹幕实时分析 思路:采集直播弹幕,然后通过情感分析,不同时间点的评论数,高频词统计 一.采集直播弹幕 首先在B站随意打开一个直播房间 https:// ...
- python实现弹幕_python实现b站直播自动发送弹幕功能
基本开发环境 · Python 3.6 · Pycharm 相关模块使用 import requests import time from tkinter import * import random ...
最新文章
- Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
- html生成的超级链接预览功能,超链接特效
- java创建临时文件夹_如何在Java中创建一个临时目录/文件夹?
- 鹅厂是如何使用 Git 的?
- 打包的时候不把配置文件加进去_webpack区分developement和production打包
- 程序员的身体一定要好
- 一个可以使用的公用MQTT测试服务器
- [云炬创业基础笔记]第九章企业的法律形态测试6
- 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
- 定长掩码地址划分与VLSM子网划分
- Caused by: Parent package is not defined: json-default - [unknown location]
- 为何python不好找工作-为什么说Python不好找工作?原因在这里!
- JetBrains产品教育版申请
- 计算机联锁控制台操作演示,车站计算机联锁控制台的设计.doc
- 平衡小车—TB6612FNG与直流电机控制教程
- 软考网络工程师好考吗?怎么备考?
- 你中招了吗?《心理学常见误区》
- 零基础建站教程,教你最快速度做好企业网站
- 即时通讯开发之开源工程WebRTC原理
- win10邮箱怎么设置qq邮箱服务器地址,老鸟给你说win10自带邮件怎么添加qq邮箱的解决方式...
热门文章
- vue引入百度地图BMapGL,获取天地图根据名称显示坐标定位信息
- ATTCK靶场系列(六)
- 微信服务器在五秒内无响应多次请求去重
- 【Ubuntu】磁盘瘦身
- md5碰撞介绍及工具,并对百度网盘进行碰撞
- Android 自定义Preference 讲解
- 中国维生素E市场趋势报告、技术动态创新及市场预测
- 发邮件(通过发邮件 激活用户/激活链接)
- 在金融行业中数据挖掘的应用都有哪些(一)
- [Transformer] EdgeViTs: Competing Light-weight CNNs on Mobile Devices with Vision Transformers