Python得到弹幕并保存到Excel中怎么设置
作者:-李华同学- 发布时间:2021-04-04 16:42:22
标签:Python,弹幕,保存,Excel
hello,我是李华同学,最近开始学习爬虫,下面是我实现的一个得到弹幕的代码
找一个的URL
想要得到一个网站的内容,首先要找到你想要内容的具体位置,首先你先找到一个有弹幕的地方,找到后按F12,找到在网络下,然后刷新页面,在左边搜索栏搜history可以找到储存弹幕的地址(图1),弹幕地址具体情况具体分析。
在标头下的“请求URL”,后面那一串链接就是要爬取的位置。(图2)
图1
图2
实现代码过程
将Python代码和Excel文件放在一个文件下
图3
用request库进行操作
不会下载库的同学可以在pycharm终端下用pip下载,也可以在设置setting的project下下载,具体步骤不会可以搜大佬的文章。
用requests对网站进行访问,这里用到了get请求方法,请求方法可以在之前找URL下看到。(图2)
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友说的话'])
保存内容,这个是借鉴一篇文章Python提取PDF发票信息保存Excel文件并制作EXE程序的全过程,具体的解释可以看这位大佬的,还有实例。
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')
来源:https://blog.csdn.net/weixin_70445937/article/details/128540367


猜你喜欢
- VS Code是微软开源的一款编辑器,插件系统十分的丰富。本文就介绍了如何使用VS Code搭建Go语言开发环境。VS Code配置Go语言
- 前言本文提供在在无音频的视频中添加音频的python工具,附上代码。环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装
- var header1 = document.getElementById("header"); var p = doc
- 本文实例讲述了python集合的创建、添加及删除操作。分享给大家供大家参考,具体如下:集合时无序可变的序列,集合中的元素放在{}内,集合中的
- 本文主要介绍python 数据可视化模块 Matplotlib,并试图对其进行一个详尽的介绍。通过阅读本文,你可以:了解什么是 Matplo
- VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器,而想要额外添加新的Python解释器
- Python内置函数isdigit()使用今天简单介绍一下Python中的isdigit()函数的用法:判断单个字符是否为数字判断字符串中是
- 在对于python中类的使用上,我们分出了子类和父类两种。对于这二者之间的关系,我们可以简单理解为继承。不过python中加入了实例的讨论,
- 一、TensorBoardTensorBoard 一般都是作为 TensorFlow 的可视化工具,与 TensorFlow 深度集成,它能
- 1.在zend-studio中的项目explorer中右键-》import->选择svn->project from svn-》
- 本文实例讲述了js实现的全国省市二级联动下拉选择菜单。分享给大家供大家参考。具体如下:运行效果截图如下:具体代码如下:<!DOCTYP
- 关于MySQL8的WITH查询学习前言:对于逻辑复杂的sql,with可以大大减少临时表的数量,提升代码的可读性、可维护性MyS
- 一、HTTP协议的网络服务HTTP协议是基于TCP/IP协议栈的,并且它也是一个面向普通文本的协议。只要搞清楚了HTTP请求的报文(报文的头
- 函数使用单下划线_开头使用单下划线(_)开头的函数_func不能被模块外部以: from module import *形式导入。但可以用:
- 一、文章前言此文主要通过小程序实现对比人脸相似度,并返回相似度分值,可以基于分值判断是否为同一人。人脸登录、用户认证等场景都可以用到。二、具
- 做python项目时,想安装某个依赖包的最新版本,但又不知道它的版本号具体到多少,因此需要搜索查看它的相关简介信息.原来的时候,可以直接通过
- PDO::beginTransactionPDO::beginTransaction 启动一个事务(PHP 5 >= 5.1.0, P
- 环境Sqlserver 2016 .net 4.5.2 目前测试数据1300万 大约3-4分钟.(限制一次读取条数 和
- 声明,本文中所称CSS雪碧即为CSS Sprites,这个词组一直没有一个固定或者约定俗成的中文翻译,一些人开始称之为CSS雪碧,我们且当作
- #第一种def delRepeat(liebiao): for x in liebiao: while li