Python教程

Python采集电视剧《开端》弹幕做成词云图

本文主要是介绍Python采集电视剧《开端》弹幕做成词云图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

大家好,本篇文章主要讲的是Python采集电视剧《开端》弹幕做成词云图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下。Python编程学习资料点击免费领取

目录

知识点介绍

环境介绍

网站分析

完整爬虫代码实现

结果展示

总结


知识点介绍

爬虫基本思路流程

requests模块的使用

pandas保存表格数据

pyecharts做词云图可视化

环境介绍

python 3.8

pycharm

requests >>> pip install requests

pyecharts >>> pip install pyecharts

网站分析

打开X讯视频的网页,点开《开端》,播放视频,弹幕随之出现再屏幕之上。

首先我们需要找到相应的弹幕出自于哪里,打开网页开发者工具,Ctrl+F输入:“那么多座位你俩非要挤一起吗”,找到弹幕所在的页面

观察发现这是一个json,其弹幕内容包含在该json中的comments之中

找到页面之后观察该页面的请求头,请求方式为get,target_id为该电视剧的网页ID,得到该电视剧的链接地址主要由target_id和timestamp时间戳构成,形如 http://mfm.video.qq.com/danmu?timestamp=0&target_id=xxxxx 且该json表明时间戳每30会更新一次弹幕信息,单位为秒,对网站进行分析之后,我们直接看到代码。

完整爬虫代码实现

timestamp每增加30就会更改整个弹幕页面,在循环中每次增加30,并更改target_id即电视剧的每一集来获取每一集的弹幕信息,下面便是编写的获取弹幕的函数。这里以第一集为例子。

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

import requests

import pandas as pd

# 构建一个列表存储数据

data_set = []

for page in range(15, 600, 30):

    try:

        # 1. 发送请求

        url = f'https://mfm.video.qq.com/danmu?otype=json&target_id=7626117232%26vid%3Dn0041aa087e&session_key=0%2C0%2C0&timestamp={page}&_=1641804763748'

        response = requests.get(url=url)

        # 2. 获取数据

        json_data = response.json()

        # 3. 解析数据

        comments = json_data['comments']

        for comment in comments:

            data_dict = {}

            data_dict['commentid'] = comment['commentid']

            data_dict['content'] = comment['content']

            data_dict['opername'] = comment['opername']

            print(data_dict)

            data_set.append(data_dict)

    except:

        pass

# 4. 保存数据

df = pd.DataFrame(data_set)

df.to_csv('data.csv', index=False)

结果展示

1

2

3

4

5

6

7

8

9

word = dfword3['word'].tolist()

count = dfword3['count'].tolist()

a = [list(z) for z in zip(word, count)]

c = (

    WordCloud()

    .add('', a, word_size_range=[10, 50], shape='circle')

    .set_global_opts(title_opts=opts.TitleOpts(title="词云图"))

)

c.render_notebook()

总结

到此这篇关于Python采集电视剧《开端》弹幕做成词云图的文章就介绍到这了。

 

 

 

 

 

这篇关于Python采集电视剧《开端》弹幕做成词云图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!