码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python带你采集爆火动漫弹幕,并且做词云图可视化分析


    前言 😋

    大家早好、午好、晚好吖~

    代码提供者: 青灯教育-巳月

    目录

      • 前言 😋
      • 知识点介绍:
      • 环境介绍:
        • 如果安装python第三方模块:
      • 案例:
        • 实现代码:
      • 代码
          • 导入模块
          • 1. 发送请求
          • 2. 获取数据
          • 3. 解析数据
          • 4. 保存数据
      • 效果
      • 词云图代码
      • 尾语 💝

    知识点介绍:

    • requests模块的使用

    • pandas读取表格数据

    • pyecharts做词云图可视化

    环境介绍:

    • python 3.8

    • pycharm

    • requests >>> pip install requests

    • pyecharts >>> pip install pyecharts

    • jieba >>> pip install jieba

    • pandas >>> pip install pandas

    如果安装python第三方模块:

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

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

    相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以加落落老师微信:xinlian_00
    
    • 1

    案例:

    分析数据来源 (数据 动态的还是静态的)

    动态数据: 在当前网页源代码里面找不到的内容

    静态数据: 当前网页源代码里面能够找到的内容

    实现代码:

    1. 发送请求 访问网站 requests

    2. 获取数据

    3. 解析数据 提取想要的内容 去掉不想要的内容

    4. 保存数据

    代码

    导入模块
    import requests     # 发送请求 第三方模块
    import csv          # 内置模块
    
    • 1
    • 2

    源码、解答、教程加Q裙:261823976 点击蓝字加入【python学习裙】

    请添加图片描述

    f = open('弹幕.csv', mode='a', encoding='utf-8-sig', newline='')
    csv_writer = csv.writer(f)
    csv_writer.writerow(['nick', 'create_time', 'content'])
    for page in range(0, 46):
        print(f"--------------正在爬取第{page}页--------------")
        url = f'https://dm.video.qq.com/barrage/segment/q0044rg63ub/t/v1/{page * 30000}/{page * 30000 + 30000}'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 发送请求
        response = requests.get(url)
    
    • 1
    2. 获取数据
        # .text: 文本内容 解析 不太方便
        # .json(): json格式的 方便接下来的数据解析
        # .content: 获取二进制数据 图片 音频 视频
        json_data = response.json()
    
    • 1
    • 2
    • 3
    • 4
    3. 解析数据
        # xpath/css/re/json
        # 我们获取下来的数据:
        # 非结构化数据: css/xpath(用法) 网页源代码<div></div>  lxml parsel bs4
        # 结构化数据: json数据 Python字典键值对取值方式  {"": ""}
        barrage_list = json_data['barrage_list']
        # 列表 [{}, {}, {}...... {}]
        for barrage in barrage_list:
            content = barrage['content']
            create_time = barrage['create_time']
            nick = barrage['nick']
            print(nick, create_time, content)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    4. 保存数据
            csv_writer.writerow([nick, create_time, content])
    
    • 1

    效果


    词云图代码

    from pyecharts.charts import WordCloud      # 导入的词云图模块
    from pyecharts import options as opts       # pyecharts设置选项
    import pandas as pd                         # 操作表格模块
    import jieba    
    
    • 1
    • 2
    • 3
    • 4
    f = open('弹幕.csv', encoding="utf-8-sig")
    # 1. 读取数据
    data = pd.read_csv(f)['content']
    # 把所有的弹幕转成列表
    data_str = str(data.values.tolist()).replace("'", '').replace(',', '').replace('[', '').replace(']', '').replace(' ', '')
    words = jieba.lcut(data_str)
    wordlist = []
    for word in words:
        if len(word) >= 1:
            wordlist.append({'word': word, 'count': 1})
    df = pd.DataFrame(wordlist)
    dfword = df.groupby('word')['count'].sum()
    word = dfword.index.tolist()
    count = dfword.values.tolist()
    c = (
        WordCloud()
        .add('', [list(z) for z in zip(word, count)])
    )
    c.render('1.html')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    词云图形状你可以自己去改哦~

    博主比较懒~就简简单单得la,哈哈哈哈哈

    尾语 💝

    好了,我的这篇文章写到这里就结束啦!

    有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

    喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

    请添加图片描述

  • 相关阅读:
    《微信小程序-进阶篇》Lin-ui组件库源码分析-Button组件(二)
    8 个常用的 Wireshark 使用技巧,一看就会
    程序员如何优雅地解决线上问题?
    从某大型企业实践看CMDB建设的核心问题:价值本源和数据治理
    时空数据预测输入数据转换问题
    (免费领源码)java#Springboot#mysql英语自主学习平台的设计与实现35901-计算机毕业设计项目选题推荐
    uniapp v3+ts 使用 u-upload上传图片以及视频
    rust学习-any中的downcast和downcast_ref
    frp安装测试
    【MATLAB教程案例32】基于matlab的交通标志检测分割算法的仿真——形态学处理,膨胀,腐蚀,形状检测,颜色模型,小波滤波等知识的综合应用
  • 原文地址:https://blog.csdn.net/weixin_62853513/article/details/126559478
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号