目录
0 引言
1 环境
2 需求分析
3 代码实现
4 后记

0 引言

纸巾再湿也是干垃圾?瓜子皮再干也是湿垃圾??最近大家都被垃圾分类折磨的不行,傻傻的你是否拎得清????自2019.07.01开始,上海已率先实施垃圾分类制度,违反规定的还会面临罚款。

为了避免巨额损失,我决定来b站学习下垃圾分类的技巧。为什么要来b站,听说这可是当下年轻人最流行的学习途径之一。

打开b站,搜索了下垃圾分类,上来就被这个标题吓(吸)到(引)了:在上海丢人的正确姿势。

当然,这里的丢人非彼丢人,指的是丢垃圾的丢。

点开发现,原来是一段对口相声啊,还是两个萌妹子(AI)的对口相声,瞬间就来了兴趣,阐述的是关于如何进行垃圾分类的。

原视频链接:https://www.bilibili.com/video/av57129646?from=search&seid=9101123388170190749

看完一遍又一遍,简直停不下来了,已经开启了洗脑模式,毕竟视频很好玩,视频中的弹幕更是好玩!

独乐乐不如众乐乐,且不如用Python把弹幕保存下来,做个词云图?就这么愉快地决定了!

1 环境

操作系统:Windows

Python版本:3.7.3

2 需求分析

我们先需要通过开发调试工具,查询这条视频的弹幕的 cid 数据。

拿到 cid 之后,再填入下面的链接中。

http://comment.bilibili.com/{cid}.xml

打开之后,就可以看到该视频的弹幕列表。

有了弹幕数据后,我们需要先将解析好,并保存在本地,方便进一步的加工处理,如制成词云图进行展示。

3 代码实现

在这里,我们获取网页的请求使用 requests 模块;解析网址借助 beautifulsoup4 模块;保存为CSV数据,这里借用 pandas 模块。因为都是第三方模块,如环境中没有可以使用 pip 进行安装。

pip install requests
pip install beautifulsoup4
pip install lxml
pip install pandas

模块安装好之后,进行导入

import requests
from bs4 import BeautifulSoup
import pandas as pd

请求、解析、保存弹幕数据

# 请求弹幕数据
url = 'http://comment.bilibili.com/99768393.xml'
html = requests.get(url).content# 解析弹幕数据
html_data = str(html, 'utf-8')
bs4 = BeautifulSoup(html_data, 'lxml')
results = bs4.find_all('d')
comments = [comment.text for comment in results]
comments_dict = {'comments': comments}# 将弹幕数据保存在本地
br = pd.DataFrame(comments_dict)
br.to_csv('barrage.csv', encoding='utf-8')

接下来,我们就对保存好的弹幕数据进行深加工。

制作词云,我们需要用到 wordcloud 模块、matplotlib 模块、jieba 模块,同样都是第三方模块,直接用 pip 进行安装。

pip install wordcloud
pip install matplotlib
pip install jieba

模块安装好之后,进行导入,因为我们读取文件用到了 panda 模块,所以一并导入即可

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba

我们可以自行选择一张图片,并基于此图片来生成一张定制的词云图。我们可以自定义一些词云样式,代码如下:

# 解析背景图片
mask_img = plt.imread('Bulb.jpg')'''设置词云样式'''
wc = WordCloud(# 设置字体  font_path='SIMYOU.TTF',# 允许最大词汇量max_words = 2000,# 设置最大号字体大小max_font_size = 80,# 设置使用的背景图片mask = mask_img,# 设置输出的图片背景色background_color=None, mode="RGBA",# 设置有多少种随机生成状态,即有多少种配色方案random_state=30)

接下来,我们要读取文本信息(弹幕数据),进行分词并连接起来:

# 读取文件内容
br = pd.read_csv('barrage.csv', header=None)# 进行分词,并用空格连起来
text = ''
for line in br[1]:text += ' '.join(jieba.cut(line, cut_all=False))

最后来看看我们效果图

有没有感受到大家对垃圾分类这个话题的热情,莫名喜感涌上心头。

4 后记

这两个AI萌妹子说的相声很不错,就不知道郭德纲看到这个作品会作何感想。回到垃圾分类的话题,目前《上海市生活垃圾管理条例》已正式施行,不在上海的朋友们也不要太开心,住建部表示,全国其它46个重点城市也即将体验到……

公众号「Python专栏」后台回复「垃圾分类」,获取本文全套代码。

转载于:https://www.cnblogs.com/moonhmily/p/11119513.html

震惊!垃圾分类居然能用Python搞定!相关推荐

  1. python是不是特别垃圾-震惊!垃圾分类居然能用Python搞定!

    目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 纸巾再湿也是干垃圾?瓜子皮再干也是湿垃圾??最近大家都被垃圾分类折磨的不行,傻傻的你是否拎得清?���自2019.07.01开 ...

  2. 50行Python搞定京东商品抢购

    50行Python搞定京东商品抢购 之前写的一篇京东抢购商品传送门,由于京东账号登录图片验证码改为了极验验证码,一直在尝试怎么用请求来去破解,而不是selenium去模拟点击,但是技不如人搞不定... ...

  3. python 画虚线_宝宝爱看小猪佩奇,很简单,让我们用python搞定它

    宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...

  4. 用python画小猪佩奇动画片全集_宝宝爱看小猪佩奇,很简单,让我们用python搞定它...

    宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...

  5. python画圆形螺旋线_硬核教程,利用 Python 搞定精美网络图!

    硬核教程, 利用 Python 搞定精美网络图! 一.NetworkX 概述 NetworkX 是一个用 Python 语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进 ...

  6. python网页爬虫循环获取_手把手教你用 Python 搞定网页爬虫

    原标题:手把手教你用 Python 搞定网页爬虫 编译:欧剃 作为数据科学家的第一个任务,就是做网页爬取.那时候,我对使用代码从网站上获取数据这项技术完全一无所知,它偏偏又是最有逻辑性并且最容易获得的 ...

  7. 用Python搞定豆瓣上征婚交友的小姐姐们~

    文 | 某某白米饭 来源:Python 技术「ID: pythonall」 大家好,我是菜鸟哥! 派森酱在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 ...

  8. python批量检索文献_快解锁新姿势,教你如何用Python搞定文献搜索和科研图片!...

    相比实验论文,发表SCI应该更让科研狗们重视和焦虑. 起初看到读博的同学发表SCI论文,心里面就已经酸了,后来「本科生发数篇 SCI」的新闻屡见不鲜,现在甚至连小学生都跑出来分一杯羹-- 前段时间,B ...

  9. 从数百个Excel中查找数据,一分钟用Python搞定

    作者 | 陈熹 来源 | 早起Python 今天分享一个真实的办公自动化需求,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大. 需求说明 首先我们来看下今天的需求,有一份档案记录 ...

最新文章

  1. 使用modernizr.js检测浏览器对html5以及css3的支持情况
  2. 中秋节前,送一波福利
  3. Unity3D音频播放器 动态装载组件
  4. boost::hana::maybe用法的测试程序
  5. 多选框向后台传值,多选框的回显,对多选框的各种操作
  6. 自动驾驶计算本车离期望轨迹距离的方法
  7. 智能手机市场输家和赢家:Android手机厥后居上
  8. 一个关于数组中满足条件的元素选择、及函数变换得c语言函数
  9. 只属于你我的共同记忆
  10. POJ 2502 Subway dij
  11. 卡尔曼滤波,互补滤波,“Tsinghua”滤波
  12. 拓展练习--find查找、打包压缩、服务器、磁盘挂载
  13. 网卡基本配置2(主机名修改、网卡绑定)
  14. DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
  15. GoJS v2.2.7 去水印
  16. python写的小巧的(14行有效代码)随机密码生成小脚本工具
  17. 显示屏连接DL580服务器方法,HPE ProLiant DL580 Gen9 服务器用户指南.pdf
  18. UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
  19. python自动生成标题_使用深度学习自动生成图片标题
  20. Rxjava——使用RxBus替换EventBus

热门文章

  1. tableau获取筛选器值_认识Tableau中的筛选器
  2. c++ 多个线程操作socket要同步吗_基础知识深化:NIO优化原理和Tomcat线程模型
  3. 并行计算(一)——并行计算机系统及结构模型
  4. Flask框架Flask-Login用法分析
  5. 第7章:图像的平滑处理
  6. Linux C函数之时间函数
  7. 公布生成cscope.out, cscope.files, tags的脚本文件
  8. Linux 驱动编译报错:error: macro __DATE__ might prevent reproducible builds [-Werror=date-time]
  9. [react] 在React中声明组件时组件名的第一个字母必须是大写吗?为什么?
  10. [css] 如何用css实现把“我不爱996”变成“699爱不我”?