python带你采集爆火动漫弹幕,并且做词云图可视化分析
Python 分析 可视化 采集 并且 云图 动漫 爆火
2023-09-14 09:05:34 时间
前言 😋
大家早好、午好、晚好吖~
代码提供者: 青灯教育-巳月
知识点介绍:
-
requests模块的使用
-
pandas读取表格数据
-
pyecharts做词云图可视化
环境介绍:
-
python 3.8
-
pycharm
-
requests >>> pip install requests
-
pyecharts >>> pip install pyecharts
-
jieba >>> pip install jieba
-
pandas >>> pip install pandas
如果安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以加落落老师微信:xinlian_00
案例:
分析数据来源 (数据 动态的还是静态的)
动态数据: 在当前网页源代码里面找不到的内容
静态数据: 当前网页源代码里面能够找到的内容
实现代码:
-
发送请求 访问网站 requests
-
获取数据
-
解析数据 提取想要的内容 去掉不想要的内容
-
保存数据
代码
导入模块
import requests # 发送请求 第三方模块
import csv # 内置模块
源码、解答、教程加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. 发送请求
response = requests.get(url)
2. 获取数据
# .text: 文本内容 解析 不太方便
# .json(): json格式的 方便接下来的数据解析
# .content: 获取二进制数据 图片 音频 视频
json_data = response.json()
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)
4. 保存数据
csv_writer.writerow([nick, create_time, content])
效果
词云图代码
from pyecharts.charts import WordCloud # 导入的词云图模块
from pyecharts import options as opts # pyecharts设置选项
import pandas as pd # 操作表格模块
import jieba
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')
词云图形状你可以自己去改哦~
博主比较懒~就简简单单得la,哈哈哈哈哈
尾语 💝
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
相关文章
- Python获取时间戳_python爬虫时间戳
- python skitlearn_Python sklearn
- python实现矩阵的转置_Python实现矩阵转置的方法分析
- ipad写python代码用什么软件_iPad 能用来写代码吗?有哪些必备软件推荐?[通俗易懂]
- python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
- 【说站】python如何制作探针模块
- [Python从零到壹] 十七.可视化分析之Matplotlib、Pandas、Echarts入门万字详解
- python读取pkl_Python读取文件的一段内容
- python随机函数的应用
- python lambda表达式举例_Python中lambda表达式[通俗易懂]
- 员工一言不合就离职怎么办?我用Python写了个员工流失预测模型
- python如何获取数据并做可视化分析
- Python TCP服务器v1.6 - multiprocessing多进程及Ctrl-c(SIGINT)退出
- 数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户|附代码数据
- 软件测试|Python基础之面向对象(一)
- 手把手教你用 Python 实现浪漫表白程序
- Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析|附代码数据
- Python序列化-序列化和反序列化
- Python 深度学习架构实用指南:第三、四、五部分
- python web后端开发工程师的面试总结详解程序员
- python登录pop3邮件服务器接收邮件详解编程语言
- 小白的Python之路 day5 python模块详解及import本质编程语言
- 学习Python精通SQL Server操作技巧(python操作sqlserver)
- Linux环境下Python开发的历程(linux与python)
- 在Linux上安装Python学习快乐(linux下载python)
- 用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它
- 跟老齐学Python之集合的关系