【Python】爬取弹幕并保存到Excel中

news2025/2/26 14:24:18
hello,我是李华同学,最近开始学习爬虫,下面是我实现的一个得到弹幕的代码 😏

找一个URL👉

想要得到一个网站的内容,首先要找到你想要内容的具体位置,首先你先找到一个有弹幕的地方,找到后按F12,找到在网络下,然后刷新页面,在左边搜索栏搜history可以找到储存弹幕的地址(图1),弹幕地址具体情况具体分析。

在标头下的“请求URL”,后面那一串链接就是要爬取的位置。(图2)

图1

图2

实现代码过程👉

🔰将Python代码和Excel文件放在一个文件下

图3

🔰用request库进行操作

不会下载库的同学可以在pycharm终端下用pip下载,也可以在设置setting的project下下载,具体步骤不会可以搜大佬的文章。

用requests对网站进行访问,这里用到了get请求方法,请求方法可以在之前找URL下看到。(图2)

#B站某直播间地址
requests.get('https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=5050')

🔰对访问的内容进行选择

我这里就选择了姓名和弹幕

for ac in d['data']['room']:
        s = "{}说:{}".format(ac['nickname'], ac['text'])

🔰防止得到的内容重复

用列表储存爬取的数据,用if条件判断新爬取的内容是否在列表ls中,如果不在就用append追加到列表中。

ls = []
if s not in ls:
            ls.append(ls)         

🔰把得到的数据保存到Excel中

在这个过程中用到了openpyxl库。

首先在Excel中先写下表头(图4),为接下来插入得到的内容找位置,然后保存(记得爬取的时候不要打开Excel文件)。

# 打开文件
wb = openpyxl.Workbook()
# 使用的工作对象创建一张表
sheet = wb.active
# 在sheet1表中写入内容    插入内容
sheet.append(['B友姓名', 'B友说的话'])

保存内容,这个是借鉴一个大佬的博客:【(1条消息) 利用python爬取信息并保存到excel_wer875442的博客-CSDN博客_如何将爬取的数据存入excel】,具体的解释可以看这位大佬的,还有实例。

print('B友姓名' + nickname, 'B友说的话' + text)
            print('开始写入excel,请稍等...', end='')
            xx_info = [nickname, text]
            sheet.append(xx_info)
            print('写入成功\n')
            # 关闭保存工作簿
        wb.save('data.xls')

图4

全部代码(代码的直接取)👉

import random
import requests
import time
import openpyxl

# 打开文件
wb = openpyxl.Workbook()
# 使用的工作对象创建一张表
sheet = wb.active
# 在sheet1表中写入内容    插入内容
sheet.append(['B友姓名', 'B友说的话'])  #这是在excel第一行插入,可以相当于一个文件的表头
# 用列表储存爬取内容,防止出现相似值
ls = []
# 循环实时弹幕
while True:
    # 爬取的直播间
    r = requests.get('')#这里括号里放找到的URL
    # 每次爬取的间隔,防止让服务器崩溃
    time.sleep(random.randint(1, 3))
    # 将输出的字符串内容转换成字典形式
    d = eval(r.text)
    # 在这两字典中爬取
    for ac in d['data']['room']:
        s = "{}说:{}".format(ac['nickname'], ac['text'])
        nickname = ac['nickname']
        text = ac['text']
        # 判断输出内容是否重复
        if s not in ls:
            ls.append(ls)
            # 确定没有重复值了输出
            # 颜色
            sheet.sheet_properties.tabColor = '000000'
            print('B友姓名' + nickname, 'B友说的话' + text)
            print('开始写入excel,请稍等...', end='')
            xx_info = [nickname, text]
            sheet.append(xx_info)
            print('写入成功\n')
            # 关闭保存工作簿
        wb.save('data.xls')

陌生人感谢您的观看,如果帮助您解决了问题,请给我点一个赞,让我有更充足的动力学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统重装yum工具与python环境

文章目录前言一、强制删除原有环境1.删除python2.删除yum二、安装新环境前置准备三、下载依赖命令1.内核版本7.6.1810下载python依赖包下载yum包2.内核版本7.4.1708下载python依赖包下载yum包3.内核版本7.8.2003下载python依赖包下载yum依赖包4.下载结果四、安装前言 安装之前…

swagger入门

目录 1.前后端分离的特点 2.在没有swagger之前 3.swagger的作用 4.swagger的优点 5.集成swagger 5.1 新建springboot项目 5.2 集成swagger 5.3 开发一个controller用于测试 5.4 启动服务,验证集成效果 6.swagger常用注解 7.swagger使用综合案例 8.会议OA之sw…

第三章 Flink DataStream API

Flink 系列教程传送门 第一章 Flink 简介 第二章 Flink 环境部署 第三章 Flink DataStream API 第四章 Flink 窗口和水位线 第五章 Flink Table API&SQL 第六章 新闻热搜实时分析系统 一、DataStream API是什么? Flink 中的 DataStream 程序是对数据流&a…

Android 深入系统完全讲解(2)

1 系统启动过程、嵌入式系统启动过程 这是我之前画的启动过程的图,这个主要就是给大家讲明白,启动过程整个的流程。 第一个阶段,bootloader 系统在上电的时候,系统会从固定的地方加载一段代码进入内部 ram 进行运行。这段代码 通…

【数学思维】Quasi-convex and quesi-concave

【数学思维】Quasi-convex and quesi-concaveConvex function 定义如下 f(λx(1−λ)y)≤λf(x)(1−λ)f(y)f(\lambda x(1-\lambda)y)\le \lambda f(x)(1-\lambda)f(y) f(λx(1−λ)y)≤λf(x)(1−λ)f(y)Quasi-convex function 定义如下 f(λx(1−λ)y)≤max⁡{f(x),f(y)}f(\l…

【阶段三】Python机器学习01篇:机器学习概念、机器学习类别、机器学习应用场景与机器学习基本技术:特征、标签、模型

本篇的思维导图: 机器学习概念 机器学习是AI人工智能的分支技术,而深度学习是机器学习的重要分支。 人工智能、机器学习、深度学习三者的关系 机器学习就是从数据中发现规律,机器学习的关键内涵之一在于利用计算机的运算能力从大量的数据中发现一个“函数”或…

Linux——VMware Tools的介绍及安装方法

一、VMware Tools的作用 1.最大的好处是可以直接把windows界面的文件拖进linux虚拟机内。 2.鼠标可以直接从虚拟机移动到windows等等好处。 二、VMware Tools的安装步骤 1.首先把linux虚拟机关机或退出,然后点击“编辑虚拟机设置”。 2.点击CD/DVD,…

电子、半导体废水深度除氟、除重金属的技术详解

电子半导体行业废水来源及水质特点电子废水主要是印刷线路板中每个环节产生的废水,如线路板上的赋铜线路、电子元器件、二极管、三极管、电容等,日常生活中常见的就是电脑元器件,如内存条、CPU、主板等。这些东西在生产成型的过程中主要通过电…

968. 监控二叉树

题目 分析 首先明确把摄像头放在叶子节点的父节点位置,才能充分利用摄像头的覆盖面积。 贪心算法: 从下到上看局部最优,因为下面的节点最多,让叶子节点的父节点安摄像头最合理,所用摄像头最少。 整体全局最优&#xf…

基于融合SPD+BIFPN+CBAM改进YOLOv5的奶牛检测识别分析系统开发

在我之前的几篇文章中分别应用了不同的tricks来改进yolov5模型如下:加入针对小目标的SPD-Conv模块《yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别》加入BIFPN特征融合模块《基于yolov5sbifpn实践隧道裂缝裂痕检测》加入注意力机制模…

[数据结构]栈和队列

目录[数据结构]栈和队列一.栈1.栈的基本概念1.2 栈的常见基本操作1.3 栈的实现1.3.1 入栈1.3.2 出栈1.3.3获取栈顶元素1.3.4 判断栈为空1.3.5 栈实现二.队列2.1 入队2.2 出队2.3 获取队首元素2.4 实现队列[数据结构]栈和队列 一.栈 1.栈的基本概念 栈(Stack&#…

你了解真正的数字孪生吗?

数字孪生的目的是在虚拟空间构建数字化的复杂系统“镜像”,可以低成本、反复的从多个视角观察、控制、分析、验证和推演,从而帮助人们更好的在现实世界中完成设计、生产、运营等活动。 近年来,数字孪生技术在航空航天、工业制造、交通物流等多…

hbase2.x HBCK Report Region Holes Overlaps问题修复

Region Holes 查看该问题可通过master UI界面的HBCK Report查看 最下方RegionInfo展示了哪两个region之间存在空洞 也可以通过master日志查看 解决步骤 解决方法很简单,直接使用 hbck2 提供的 fixMeta 操作即可。 在 Usage 说明中能看到 fixMeta 能够修复 ‘…

【Linux】make/Makefile的使用

本文目录 背景简介 使用方法 为什么执行的指令是make和make clean呢? gcc如何判断文件是否需要重新执行? 背景简介 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefifile定义了一系列的规则来指定…

16万字智慧医疗-医院信息化大数据建设 方案

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 目 录 1 概述 1.1 现状分析 …

人工智能-网络编程、TCP

目录1、网络编程1.1网络介绍1.2IP地址1.3 ifconfig和ping命名1.4端口和端口号1.5端口号的分类1.6 socket介绍1.7 TCP介绍2、TCP的网络应用程序开发2.1 python3编码转换2.2 TCP客户端程序开发流程2.3 TCP客户端程序开发2.4 TCP服务端程序开发流程2.5 TCP…

[Android]序列化原理Parcelable

Parcelable是Android为我们提供的序列化的接口,Parcelable相对于Serializable的使用相对复杂一些,但Parcelable的效率相对Serializable也高很多,这一直是Google工程师引以为傲的,Parcelable和Serializable的效率对比Parcelable vs…

CesiumLab中对输入人工模型的格式要求 CesiumLab系列教程

人工模型数据(或者手工模型数据)是三维 GIS 行业发展的最早的需求来源,通过3dsmax,maya 等建模工具人工建模的数据。 ​ 编辑 人工模型 这张图是cesiumlab上对人工模型来源的流程,在上面我们只罗列了四个建模工具&a…

Rabbitmq消息队列详解(二)——消息模式API

官网提供的消息模式&#xff1a; 依赖&#xff1a; <!-- 加入rabbitmq --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>hello模型 没有交换机&…

电商物流第三方云仓到底是什么?

仓库能够简单地定义为一个规划空间&#xff0c;通常是一个用于处置和贮存货物的大型商业建筑。因而&#xff0c;仓储是指在这样一个规划空间中存储和处置货物所触及的一切过程。仓库中常见的货物包括&#xff1a;;机械零配件、建筑资料、废品农产品、家具和电子产品。仓库中的一…