python爬虫_requests获取bilibili锻刀村系列的字幕并用分词划分可视化词云图展示

news2024/11/18 8:25:51

文章目录

    • ⭐前言
    • ⭐获取字幕步骤
      • 💖 查找heartbeat接口
      • 💖 字幕api接口
      • 💖 正则提取p标签的内容
    • ⭐分词
    • ⭐结束

yma16-logo

⭐前言

大家好,我是yma16,本文分享python的requests获取哔哩哔哩锻刀村的字幕并用分词划分可视化词云图展示。
该系列文章:
python爬虫_基本数据类型
python爬虫_函数的使用
python爬虫_requests的使用
python爬虫_selenuim可视化质量分
python爬虫_django+vue3可视化csdn用户质量分
python爬虫_正则表达式获取天气预报并用echarts折线图显示

requests简介

正则表达式(Regular expressions,也叫 REs、 regexs 或 regex patterns),是一个特殊的字符序列。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

⭐获取字幕步骤

  1. 查找视频的cid参数
  2. 拼接字幕url
  3. requests去访问字幕url获取内容

💖 查找heartbeat接口

查找heartbeat接口中的cid参数,cid=1154635809
查找过程如下图:
cid-heartbeat

💖 字幕api接口

字幕接口
https://comment.bilibili.com/1154635809.xml
get访问即可拿到字幕
xml字幕内容如下
在这里插入图片描述

💖 正则提取p标签的内容

python抓取内容后,用re.complie提取字幕
代码如下:

import requests,re

def compile_font(text):
    c=re.compile(r'p="(.*?)">(.*?)<',re.S)
    result=re.findall(c,text)
    for i in result:
        value=i[1]
        with open('鬼灭之刃.txt','a+',encoding='utf-8') as f:
            f.write(value)

def request_post(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
        "origin": "https: // www.bilibili.com",
        "referer": "https://www.bilibili.com/bangumi/play/ss22088/?from=search&seid=17394404948182677638"
    }
    
    resp=requests.get(url,headers=headers)
    print(resp)
    text=resp.content.decode('utf-8')
    print('text',text)
    compile_font(text)


if __name__=='__main__':
    url="https://api.bilibili.com/x/v1/dm/list.so?oid=1154635809"
    request_post(url)

运行得到字幕的txt文件comment-font
inscode代码:

⭐分词

使用python的jiebaf分词
代码如下

import jieba
from wordcloud import WordCloud, ImageColorGenerator
from matplotlib import pyplot as plt
import numpy as np

with open('鬼灭之刃.txt', 'r', encoding="UTF-8") as file1:
    content = "".join(file1.readlines())
content_after = "\n".join(jieba.cut(content, cut_all=True))
print('content_after',content_after)
##添加的代码,把刚刚你保存好的图片用Image方法打开,
##然后用numpy转换了一下

wc = WordCloud(font_path="C:\Windows\Fonts\simsun.ttc",#字体路径
               background_color="white",#一下是图片背景颜色字体大小及尺寸大小
               max_words=5000,
               max_font_size=50,
               width=600,
               height=600,
              ).generate(content)
plt.imshow(wc)
wc.to_file('鬼灭之刃.png')


with open('鬼灭之刃分词.txt', 'a+', encoding='utf-8') as f:
    f.write(content_after)

分词效果
jieba-python

生成的词云图:
word-split-cloud

⭐结束

本文分享到这结束,如有错误或者不足之处欢迎指出!
scene

👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 感谢你的阅读!

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

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

相关文章

Linux MySQL数据迁移

背景&#xff1a;MySQL安装时如果数据文件存在系统盘&#xff0c;随着业务的增长&#xff0c;必定会占用越来越多的系统盘空间直至爆满。为了给系统盘腾出空间来维持服务器的正常运转&#xff0c;需要将MySQL数据文件转移到其他磁盘。 实现步骤&#xff1a;1.在其他磁盘上创建…

Redis集群环境搭建[CentOS7]

下载 cd /usr/local/src/ wget https://mirrors.huaweicloud.com/redis/redis-7.0.11.tar.gz编译安装 tar -xzvf /usr/local/src/redis-7.0.11.tar.gz -C /usr/local/src/ cd /usr/local/src/redis-7.0.11 make PREFIX/usr/local/redis-7.0.11 install制作集群配置模板 cat …

删除排序链表中的重复元素(保留一个重复元素或不保留重复元素)

题目1&#xff1a;给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。&#xff08;重复元素不全部都删除&#xff0c;需要保留一个&#xff09; 解题思路&#xff1a; 遍历链表&#xff0c;找到重复元素…

Openlayers Draw的用法、属性、方法、事件介绍

Openlayers Draw绘制功能比较常用,如我们需要手动绘制一些点、线、面、多边形,圆等图形,Openlayers为我们提供了相关的API,主要API都在ol/interaction/Draw里面,绘制的API使用起来也比较简单,首先创建一个Draw对象,然后再使用Map的addInteraction方法添加该对象,就可以…

造个CPU玩玩——从硬件到软件的设计

本文使用模拟电路制造CPU——纸上谈兵。 计算机中蕴藏的哲理 最基本的思想是&#xff1a;通过基本电路的接线&#xff0c;确立输入-输出规则&#xff0c;类似函数的入参和返回值&#xff0c;便构成一个功能电路单元。单元套单元组成新单元&#xff0c;如此往复。“一生二&…

vue实现指定div右键显示菜单,并实现复制内容到粘贴板

效果图 实现 全有注释&#xff0c;代码如下&#xff1a; <!--指定的需要右键菜单的div--><div class"content" contextmenu.prevent"showMenu($event, item)"><span class"content_msg">{{item}}</span></div>&…

Python如何批量将图片以超链接的形式插入Excel

【研发背景】 在日常办公中&#xff0c;我们经常需要将图片插入进Excel中&#xff0c;但是如果插入的图片太多的话&#xff0c;就会导致Excel的文件内存越来越大&#xff0c;但是如果我直插入图片的路径&#xff0c;或者只是更改某一列的数据设置为超链接&#xff0c;这样的话&…

拉格朗日乘子法

首先定义一个原始最优化问题&#xff1a; 引入广义拉格朗日函数&#xff0c;将约束问题转换为无约束优化问题&#xff1a; 参数和自变量x求偏导&#xff0c;分别为零&#xff0c;就能解出一个值&#xff08;极大值或者极小值&#xff09;。 直接求解有时候非常困难&#xff0c…

企业和公司扩展WordPress网站的4种方法

Netflix 通过邮递观看 DVD。Apple 是一家计算机公司&#xff0c;而不是电话公司。WordPress 是一个博客平台。 这三个陈述有什么共同点&#xff1f;十年前都是对的&#xff0c;现在都不是了。如今&#xff0c;Netflix 以数字方式提供原创内容而闻名。Apple 正在推出其广受欢迎…

从零开始 Spring Boot 62:过滤实体和关系

从零开始 Spring Boot 62&#xff1a;过滤实体和关系 图源&#xff1a;简书 (jianshu.com) JPA&#xff08;Hibernate&#xff09;中有一些注解可以用于筛选实体和关系&#xff0c;本文将介绍这些注解。 Where 有时候&#xff0c;我们希望对表中的数据进行“软删除”&#x…

Meta为全天候AR眼镜设计了AI系统的八大指导方针

众所周知&#xff0c;Meta不仅局限在Quest这类VR头显上&#xff0c;同时还在打造更轻量化的AR眼镜&#xff0c;目标就是让产品更好的融入到人们的日常生活中去。除了硬件上轻量化以外&#xff0c;在功能和交互体验上也至关重要&#xff0c;例如自然交互方式&#xff0c;比如手势…

什么是人工智能大模型?

目录 1. 人工智能大模型的概述&#xff1a;2. 典型的人工智能大模型&#xff1a;3. 人工智能大模型的应用领域&#xff1a;4. 人工智能大模型的挑战与未来&#xff1a;5. 人工智能大模型的开发和应用&#xff1a;6. 人工智能大模型的学习资源&#xff1a; 人工智能大模型是指具…

MySQL(创建、删除、查询数据库以及依据数据类型建表)

一、 1.创建数据库&#xff0c; mysql> CREATE DATABASE IF NOT EXISTS SECOND_DB; Query OK, 1 row affected (0.01 sec)2.删除数据库&#xff0c; mysql> DROP DATABASE IF EXISTS SECOND_DB; Query OK, 0 rows affected (0.11 sec)3.查询创建数据的语句&#xff0c;…

优化模型案例

案例1 生产决策问题 &#xff08;一个简单的线性规划问题&#xff09; 某工厂在计划期内要安排I、II两种产品生产。生产单位产品所需的设备台时&#xff0c;A&#xff0c;B两种原材料的消耗&#xff0c;资源的限制以及单件产品利润如下表所示 问工厂应分别生产多少单位产品I和…

修改开发板内核启动日志输出级别

1.用超级用户权限输入命令 2.将verbosity 1改成7&#xff0c;将console(控制&#xff09; both 改成 serial&#xff08;串口控制),然后wq保存退出 3.输入命令sudo reboot 查看启动日志输出级别

华为云CodeArts IDE Online:让你随时随地畅享云端编码乐趣

软件开发是把人类智慧以代码方式表达出来的过程&#xff0c;面对不可预知且快速变化的世界&#xff0c;开发者面临着前所未有的巨大挑战。例如&#xff0c;软件交付周期和迭代速度要求更高、开发者需要快速学习各种新技术、开发时间碎片化严重、分散的交付团队协同困难、开发与…

微信小程序接入第三方后,不能及时发送客服消息

微信小程序接入第三方后&#xff0c;不能及时发送客服消息 1、要把这里关了&#xff0c;后台才能及时收到用户发来的消息

机器学习16:使用 TensorFlow 进行神经网络编程练习

在【机器学习15】中&#xff0c;笔者介绍了神经网络的基本原理。在本篇中&#xff0c;我们使用 TensorFlow 来训练、验证神经网络模型&#xff0c;并探索不同 “层数节点数” 对模型预测效果的影响&#xff0c;以便读者对神经网络模型有一个更加直观的认识。 目录 1.导入依赖…

Dubbo入门详解,API方式与SpringBoot方式

Hi I’m Shendi Dubbo入门详解&#xff0c;API方式与SpringBoot方式 在之前一直使用的自己编写的RPC框架&#xff0c;因为是自己编写的&#xff0c;功能上比不过市面上的开源框架&#xff0c;包括后面Spring Cloud系列&#xff0c;如果还用自己编写的话就需要去做整合之类的&am…

OpenResume一个功能强大的开源简历生成器,太炫了

OpenResume 是一个功能强大的开源简历生成器和简历解析器。目标是为每个人提供免费的现代专业简历设计&#xff0c;让任何人都能充满信心地申请工作。 核心优势 「实时UI更新」:当输入简历信息时&#xff0c;简历 PDF 会实时更新&#xff0c;因此可以轻松查看最终输出。 「现…