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

前言

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

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

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

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

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

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

知识点介绍:

  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          # 内置模块 保存数据

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

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. 获取数据

: 请求成功

.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实战 | 如何抓取tx短片弹幕并作词云图分析_第3张图片

推荐往期文章

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

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

python小介绍:

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

python数据分析前景:

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

python基础自测题:

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

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

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

尾语

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

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

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

—— 心灵鸡汤

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

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

你可能感兴趣的:(爬虫,python,pandas,开发语言)