豆瓣电影《杀破狼》影评制作词云 -《狗嗨默示录》-
shapolang.py
# !/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'LiGoHi'import warnings warnings.filterwarnings("ignore") import jieba #分词包 import numpy #numpy计算包 import codecs #codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode import re import pandas as pd import matplotlib.pyplot as plt from urllib import request from bs4 import BeautifulSoup as bs # %matplotlib inline # from scipy.misc import imreadimport matplotlib matplotlib.rcParams['figure.figsize'] = (10.0, 5.0) from wordcloud import WordCloud#词云包#分析网页函数 def getNowPlayingMovie_list(): resp = request.urlopen('https://movie.douban.com/nowplaying/hangzhou/') html_data = resp.read().decode('utf-8') soup = bs(html_data, 'html.parser') nowplaying_movie = soup.find_all('div', id='nowplaying') nowplaying_movie_list = nowplaying_movie[0].find_all('li', class_='list-item') nowplaying_list = [] for item in nowplaying_movie_list: nowplaying_dict = {} nowplaying_dict['id'] = item['data-subject'] for tag_img_item in item.find_all('img'): nowplaying_dict['name'] = tag_img_item['alt'] nowplaying_list.append(nowplaying_dict) return nowplaying_list#爬取评论函数 def getCommentsById(movieId, pageNum):eachCommentList = [];if pageNum>0:start = (pageNum-1) * 20else:return Falserequrl = 'https://movie.douban.com/subject/' + movieId + '/comments' +'?' +'start=' + str(start) + '&limit=20'print(requrl)resp = request.urlopen(requrl)html_data = resp.read().decode('utf-8')soup = bs(html_data, 'html.parser')comment_div_lits = soup.find_all('div', class_='comment')for item in comment_div_lits:if item.find_all('p')[0].string is not None: eachCommentList.append(item.find_all('p')[0].string)return eachCommentListdef main():#循环获取第一个电影的前10页评论commentList = []NowPlayingMovie_list = getNowPlayingMovie_list()for i in range(10): num = i + 1commentList_temp = getCommentsById(NowPlayingMovie_list[0]['id'], num)commentList.append(commentList_temp)#将列表中的数据转换为字符串comments = ''for k in range(len(commentList)):comments = comments + (str(commentList[k])).strip()#使用正则表达式去除标点符号pattern = re.compile(r'[\u4e00-\u9fa5]+')filterdata = re.findall(pattern, comments)cleaned_comments = ''.join(filterdata)#使用结巴分词进行中文分词segment = jieba.lcut(cleaned_comments)words_df=pd.DataFrame({'segment':segment})#去掉停用词stopwords=pd.read_csv("stopwords.txt",index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')#quoting=3全不引用words_df=words_df[~words_df.segment.isin(stopwords.stopword)]#统计词频words_stat=words_df.groupby(by=['segment'])['segment'].agg({"计数":numpy.size})words_stat=words_stat.reset_index().sort_values(by=["计数"],ascending=False)# 设置背景图片# alice_coloring = imread("相片.png")#用词云进行显示wordcloud=WordCloud(font_path="simhei.ttf",background_color="white",max_font_size=80)word_frequence = {x[0]:x[1] for x in words_stat.head(1000).values}# word_frequence_list = []# for key in word_frequence:# temp = (key,word_frequence[key])# word_frequence_list.append(temp)# word_frequence_list = word_frequence_list# print(word_frequence_list) wordcloud = wordcloud.fit_words(word_frequence)plt.imshow(wordcloud)plt.axis("off")plt.show()# fielname = "影评词云图.jpg"# with open(fielname,'wt') as f:# f.save(img)#主函数 main()
转载于:https://www.cnblogs.com/LiGoHi/p/7388191.html
豆瓣电影《杀破狼》影评制作词云 -《狗嗨默示录》-相关推荐
- python爬取爱情公寓电影评论并制作词云
python爬取爱情公寓电影评论并制作词云 前言: 一直想研究研究如何生成词云,今天抽点时间给大家分享一下制作词云的过程,本文重在研究词云如何制作,由于时间仓促,至于爬取的数据量不大,大家可自 ...
- MySQL数据库基本的“增删改查”操作 -《狗嗨默示录》-
一.使用Navicat for MySQL进行可视化操作 想要通过直观的图形界面查看MySQL数据库,使用鼠标点击查看有多少个表,以及表里有啥东西.那么你可以这样: 图形界面: 命令: 查看多少个数据 ...
- jQuery slideToggler() 方法 -《狗嗨默示录》-
实例 在所有 <p> 元素上进行 slideUp() 和 slideDown() 之间的切换: $("button").click(function(){ $(&quo ...
- 多线程threading模块用法 -《狗嗨默示录》-
threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用 目标函数可以实例化一个 ...
- Python 爬虫实战(1):分析豆瓣中最新电影的影评并制作词云
入门Python不久,想做个小项目练练手,碰巧最近一部国产电影<红海行动>反响不错,便萌生想法去抓取一下它最新的评论,并制作词云,来看看网页对这部电影的一些评价,接下来就是开始分析啦(分析 ...
- python怎么爬取知乎回答并制作词云_使用python爬取流浪地球影评并制作词云,看看别人都说了些说什么...
流浪地球影评爬取 大过年的,蹭个热度,看完电影后爬一下影评并作出词云. 本次影评取自豆瓣: https://movie.douban.com/subject/26266893/ 抓包 首先是拿到访问的 ...
- 爬取豆瓣短评制作词云
首先是解析网页信息 引库(前提是你已经安装过了) import requests from bs4 import BeautifulSoup 接下来先请求网页 def getHtml(url):&qu ...
- 采集腾讯视频里电视剧《在一起》的全部评论信息并且制作词云
作业介绍 作业目标 Python爬取腾讯视频<在一起>评论,利用分词器处理数据,生成词云,将代码上传到Github 作业源代码 第一次个人编程代码 时间记录 步骤 具体做法 时间 1. 进 ...
- Python制作词云视频(使用B站视频及弹幕文本)
Python制作词云视频-目录 使用到的第三方库 项目思路和代码流程 B站弹幕爬取 思路 实现 参考代码 视频下载 思路 参考命令 视频.音频剪辑和音频提取 思路 参考代码 视频帧提取 思路 参考代码 ...
最新文章
- 客户端动态调用WCF服务中的方法
- SQLite的sqlite_sequence表
- 机器学习 Softmax classifier (无隐含层)
- 一个完整的DS1302时钟在STM32上的应用实例
- 寒霜朋克计算机丢失,寒霜朋克玩不了怎么办 寒霜朋克进不去解决方法
- php e error,E_ERROR定义与用法汇总
- Python多态、鸭子类型
- .NET的托管堆中是否可能出现内存泄漏现象
- GridView中的超级链接
- 知富柜台系统服务器,商业银行柜面无纸化安全解决方案
- 关于PC电脑微信进粉计数器的选择?
- 京东健康打开医疗服务的“脑机”接口
- 英国内政大臣表示社交软件加密不能太严
- 【MySQL数据库系列】一、认识数据库、建库建表操作
- Restful风格的验证码
- 关于ATSHA204a的使用流程
- 2011年最新企业offer
- 【AD常见问题】STM32C8T6最小系统板的间距
- java快速开发平台 1
- C++中cos,sin,asin,acos这些三角函数操作的是弧度,而非角度,
热门文章
- pinyin4j的用法
- 重新编译Opencv:Opencv3.2.0+CUDA7.5+VS2013+Cmake3.8+Quadro K620显卡+Win7系统
- 什么是运营呢,谈谈你对运营的认识。
- 用Excel如何将文本转换为数字的七种方法
- OpenRTMFP/Cumulus Primer(20)Cumulus的一个线程启动 Bug
- html怎么让歌一直播放,怎样可以让背景音乐一直保持在播放状态
- redis+mysql缓存
- 动漫人物五官比例怎么画好看?手把手教你画五官教程
- 华为手机一键修改serial信息
- 还不会华为交换机如何恢复出厂设置的,看这里