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


    前言

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

    本次目的:采集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          # 内置模块 保存数据
    
    • 1
    • 2

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

    请求头: 伪装

    : 拼音

    : 字

    {'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):
    
    • 1
    • 2
    • 3
    • 4

    请求方法: GET

    1. 发送请求

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

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

    2. 获取数据

    : 请求成功

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

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

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

        json_data = response.json()
    
    • 1

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4. 保存数据

            csv_writer.writerow([nick, create_time, content])
    
    • 1
    词云图
    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'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    推荐往期文章

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

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

    python小介绍:

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

    python数据分析前景:

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

    python基础自测题:

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

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

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

    尾语

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

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

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

    —— 心灵鸡汤

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

    👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
  • 相关阅读:
    javaScript操作数组的方法
    CSS----字体属性
    MyBatisPlus学习(2)—— 初始化环境配置 + 自定义Mapper
    Redis_利用benchmark工具进行性能测试
    数字化打开第二增长曲线,华为总结运营商云转型三大场景
    Spring框架——加载属性(properties)文件
    人工智能-推荐数据处理
    算法手撕代码101~110
    C#,搜索无向无权连通图(Undirected Unweighted Graph)的简单环(Simple Cycle)的算法与源代码
    A-level经济例题解析及练习Price Control
  • 原文地址:https://blog.csdn.net/python56123/article/details/128001664