Python实战 | 如何抓取tx短片弹幕并作词云图分析

news2024/11/18 23:27:39

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

本次目的:采集tx短片弹幕,并且做词云图可视化分析

这个不少漫迷应该都看过吧~

哪里都好,就是更新太慢了一点,剧情磨蹭了一点,哎

那今天我们就来采集一下它的弹幕吧,看看其他小伙伴的反应怎么样~

知识点介绍:

  1. 基本思路流程

  2. requests模块的使用

  3. pandas读取表格数据

环境介绍:

  • python 3.8

  • pycharm

  • requests >>> pip install requests

  • pandas >>> pip install pandas

  • jieba

  • stylecloud

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

原理:

模拟成 浏览器 / 客户端 向 服务器 发送网络请求

如何去实现一个案例:

找数据

静态的数据: 如果在网页源代码当中能够找到的内容 静态的数据

动态的数据: 找不到就是动态的

代码实现过程:

  1. 发送请求

  2. 获取数据

  3. 解析数据

  4. 保存数据

🎯 博主所有文章素材、解答、源码、教程领取处:点击

代码展示

采集数据

import requests     # 发送请求 第三方模块
import csv          # 内置模块 保存数据

f = open('弹幕.csv', mode='a', newline='', encoding='utf-8-sig')
csv_writer = csv.writer(f)
csv_writer.writerow(['nick', 'create_time', 'content'])

请求头: 伪装

: 拼音

: 字

{'user-agent': 'Mozilla/5.0....'} Python叫做字典 存储数据的

列表也是存储数据的 []

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
for i in range(0, 100):

请求方法: GET

1. 发送请求

函数传参 默认位置传参, 指定参数传参

    response = requests.get(url, headers=headers)

2. 获取数据

<Response [200]>: 请求成功

.text: 只要是文本内容 都可以用.text

.content: 获取二进制数据, 如果当你访问的链接为 图片/视频/音频

.json(): 只支持 {}/[] 取出来之后的数据 要么是字典 要么是列表 要么就是报错

    json_data = response.json()

3. 解析数据 提取数据

字典(可以通过键取值) 和 列表 的取值方式

[1,2,3,4,5,6,7]

    barrage_list = json_data['barrage_list']
    for barrage in barrage_list:
        content = barrage['content']
        nick = barrage['nick']
        create_time = barrage['create_time']
        print(nick, create_time, content)

4. 保存数据

        csv_writer.writerow([nick, create_time, content])

词云图

import pandas as pd  # 第三方模块
import jieba
import stylecloud


# 1. 导入数据
df = pd.read_csv('弹幕.csv')

def get_cut_words(content_):
    # 定义停用词的表
    stop_words = []
    with open('stop_words.txt', 'r', encoding='utf-8-sig') as f:
        lines = f.readlines()
        for line in lines:
            stop_words.append(line.strip())
    # 添加关键词
    my_words = ['666', '某音']
    for i in my_words:
        jieba.add_word(i)
    word_num = jieba.lcut(content_.str.cat(sep='。'), cut_all=False)
    word_num_selected = [i for i in word_num if i not in stop_words and len(i) >= 2]
    return word_num_selected

text = get_cut_words(df['content'])

stylecloud.gen_stylecloud(
    text=' '.join(text),
    collocations=False,
    font_path=r'C:\Windows\Fonts\msyh.ttc',
    icon_name='fab fa-youtube',
    size=768,
    output_name='video.png'
)

推荐往期文章

🎯 博主所有文章素材、解答、源码、教程领取处:点击

对python感兴趣的小伙伴也可以看一下博主其他相关文章哦~

python小介绍:

python是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。

python数据分析前景:

用python分析“数据分析”到底值不值得学习,以及学完之后大概能拿到多少工资

python基础自测题:

Python 800 道习题 (°ー°〃) 测试你学废了嘛

最后推荐一套Python视频给大家,希望对大家有所帮助:

全套教程!你和大佬只有一步之遥【python教程】

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

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

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

相关文章

我把提高开发效率的VSCode插件分享出来了

前言 最近在家办公&#xff0c;写代码发现没有那么流畅&#xff0c;一看是某些插件没有安装&#xff0c;搞得写代码的效率降低&#xff0c;所以这里有些比较实用的插件推荐给大家 开发实用插件 Settings Sync 利用 Settings Sync &#x1f48e;将 VS Code 的设置保存在gith…

MCE | HPV 疫苗要不要打?

HPV 感染很大概率会患宫颈癌&#xff1f;HPV 感染 ≠ 患宫颈癌超过 90&#xff05; 的 HPV 感染者无症状&#xff0c;并无需干预能在 2 年内清除感染。虽然大部分 HPV 感染会自行消退&#xff0c;但所有感染女性都面临 HPV 感染转为慢性&#xff0c;以及癌前病变发展为浸润性宫…

ViewPager2+TabLayout

效果图&#xff1a; MainActivity public class MainActivity extends AppCompatActivity {private TabLayout tabLayout;private ViewPager2 viewPager2;private int activeColor Color.parseColor("#ff678f");private int normalColor Color.parseColor("#…

C++入门教程||C++中的输入输出||C++ 注释

1. cout输出流的使用&#xff1a; cout输出流需要搭配<<输出操作符来使用&#xff0c;如输出语句&#xff1a; 1 cout<<"Hello"; 即会在屏幕上显示字符串Hello。 本质上&#xff0c;是将字符串"Hello"插入到cout对象里&#xff0c;并以cout…

一些RCE的汇总

RCE自增RCE参考[CTFshow-RCE极限大挑战官方wp]RCE-1[过滤.(]RCE-2p[自增-Array]RCE-3[自增-NAN-<105字符]RCE-4[自增-NAN-<84字符]RCE-5[自增-gettext扩展]72位字符68位字符无参数RCE参考[RCE篇之无参数rce]介绍例题一些能用上的函数前两天刚好ctfshow有个RCE极限大挑战&…

网络基础知识总结+网络设备介绍(运维必备网络知识)

什么是网络 网络是由多台计算机&#xff08;或手机等&#xff09;通过网络设备&#xff08;交换机以及路由器&#xff09;及网线&#xff08;或无线&#xff09;连接起来&#xff0c;按照一定的规范规则则彼此进行通信的系统总称。 为什么要有网络 网络出现的最核心需求就是…

[足式机器人]Part3机构运动微分几何学分析与综合Ch01-3 平面运动微分几何学——【读书笔记】

本文仅供学习使用 本文参考&#xff1a; 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch01-3 平面运动微分几何学1.2.2 瞬心线-21.2.3 点轨迹的Euler-Savary公式1.2.2 瞬心线-2 &#xff08;3&#xff09;平面连杆机构&#xff08;二自由度开链串联机构…

【LeetCode-中等】238. 除自身以外数组的乘积(详解)

题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法&#xff0c;且在 O(n) 时…

vue 动态组件 render/jsx

需求 根据用户需求设定的动态呈现表单内容 刚开始 打算使用v-html使用,但是v-html 无法渲染组件&#xff0c;只能显示原生的dom,操作起来实在是不方便。查阅了之后&#xff0c;发现可以用render或者jsx实现【为了能作为Vue模板解析】。于是乎开启了我render之旅~ 使用 <tem…

基于JAVA的图书借阅管理平台【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427643 高校图书馆提倡“以人为本”的管理理念&#xff0c;从读者的角度出发&#xff0c;最大程度满足读者群体的文献资源需要。高校图书馆的管理理念和服务模式之间有着紧密的联系&#xff…

一键开启云原生网络安全新视界

本文作者&#xff1a;陈桐乐 李卓嘉 随着云原生的兴起&#xff0c;微服务、容器、kubernetes容器编排正在快速改变着企业软件架构的形态&#xff0c;单体架构、分布式架构、微服务架构&#xff0c;软件架构在持续演进的过程中&#xff0c;变得越来越复杂&#xff0c;管理和维护…

Qt QLabel文本框的使用

文章目录QLabel文本框的使用QLabel文本框的信号和槽实例演示QLabel文本框的用法已剪辑自: http://c.biancheng.net/view/vip_9653.html QLabel 是 Qt 帮我们写好的一个控件类&#xff0c;间接继承自 QWidget 类&#xff0c;它的继承关系如下&#xff1a; QLabel -> QFrame…

消防宣传科普|消防安全知识网上答题挑战赛活动方案

活动背景 为普及消防法律法规和消防安全知识&#xff0c;营造消防宣传月浓厚氛围。集团公司防火办通过“防火安全知识专项学习与竞答”小程序&#xff0c;开展“消防知识网上答题挑战赛”&#xff0c;提升全员消防安全意识&#xff0c;提高抗御火灾、自防自救和组织疏散能力。…

配置FTP站点操作步骤—图解

前提条件(已安装FTP服务器可忽略)&#xff1a; 点击WinR后在运行窗口中输入control&#xff0c;将打开控制面板&#xff0c;选择【程序】—【启动或关闭Windows功能】—点击【Internet Information Services】勾选【FTP服务器】—点击【确定】按钮按照即可。 1.点击WinR后在运…

数字集成电路设计(六、Verilog HDL高级程序设计举例)

文章目录1. 数字电路系统设计的层次化描述方式1.1 Bottom-Up 设计方法1.2 Top-Down 设计方法2. 典型电路设计2.1 加法器树乘法器2.1.1 改进为两级流水线4位加法器树乘法器2.2 Wallace 树乘法器2.3 复数乘法器2.4 FIR滤波器的设计2.5 存储器的设计2.6 FIFO的设计1. 数字电路系统…

Mac下,protoc-gen-go-grpc: program not found or is not executable问题的解决

一 问题来源 在公司的项目中,需要把对应的proto文件生成对应的pb文件,当执行protoc相关命令时,出现报错:protoc-gen-go-grpc: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH …

IDEA配置Tomcat,先报500错误,刷新后报404.

IDEA配置Tomcat&#xff0c;先报500错误&#xff0c;刷新后报404的解决方法.错误1&#xff1a;JDK的版本高于JRE的版本错误2&#xff1a;Tomcat版本与JDK版本不相符报错截图 错误1&#xff1a;JDK的版本高于JRE的版本 这也是我个人在配置过程中&#xff0c;导致无法配置成功的…

HTML旅游网页设计制作 DW旅游网站官网滚动网页 DIV旅游风景介绍网页设计与实现

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

Transferrin-PEG-PMMA 转铁蛋白-聚乙二醇-聚甲基丙烯酸甲酯,F-PEG-PBA/PAE/PPS

产品名称&#xff1a;转铁蛋白-聚乙二醇-聚甲基丙烯酸甲酯 英文名称&#xff1a;Transferrin-PEG-PMMA 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液体&#xff0c;取决于分子量 PEG分子量可选&#xff1a;350、550、750、…

numpy数组索引、数组切片、数组形状修改、数组类型修改和数组去重

一、numpy数组索引、切片 直接进行索引&#xff0c;切片对象[:, :]&#xff1a;先行后列 代码如下 a np.array([[1, 2, 3], [11, 22, 33]]) # 二维数组 a[1, [0,1,2]] # 索引a np.array([[1, 2, 3], [11, 22, 33]]) # 二维数组 a[1, 0:3] # 切片a2 np.array([[[1,…