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

豆瓣电影《杀破狼》影评制作词云 -《狗嗨默示录》-相关推荐

  1. python爬取爱情公寓电影评论并制作词云

    python爬取爱情公寓电影评论并制作词云 前言:     一直想研究研究如何生成词云,今天抽点时间给大家分享一下制作词云的过程,本文重在研究词云如何制作,由于时间仓促,至于爬取的数据量不大,大家可自 ...

  2. MySQL数据库基本的“增删改查”操作 -《狗嗨默示录》-

    一.使用Navicat for MySQL进行可视化操作 想要通过直观的图形界面查看MySQL数据库,使用鼠标点击查看有多少个表,以及表里有啥东西.那么你可以这样: 图形界面: 命令: 查看多少个数据 ...

  3. jQuery slideToggler() 方法 -《狗嗨默示录》-

    实例 在所有 <p> 元素上进行 slideUp() 和 slideDown() 之间的切换: $("button").click(function(){ $(&quo ...

  4. 多线程threading模块用法 -《狗嗨默示录》-

    threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用 目标函数可以实例化一个 ...

  5. Python 爬虫实战(1):分析豆瓣中最新电影的影评并制作词云

    入门Python不久,想做个小项目练练手,碰巧最近一部国产电影<红海行动>反响不错,便萌生想法去抓取一下它最新的评论,并制作词云,来看看网页对这部电影的一些评价,接下来就是开始分析啦(分析 ...

  6. python怎么爬取知乎回答并制作词云_使用python爬取流浪地球影评并制作词云,看看别人都说了些说什么...

    流浪地球影评爬取 大过年的,蹭个热度,看完电影后爬一下影评并作出词云. 本次影评取自豆瓣: https://movie.douban.com/subject/26266893/ 抓包 首先是拿到访问的 ...

  7. 爬取豆瓣短评制作词云

    首先是解析网页信息 引库(前提是你已经安装过了) import requests from bs4 import BeautifulSoup 接下来先请求网页 def getHtml(url):&qu ...

  8. 采集腾讯视频里电视剧《在一起》的全部评论信息并且制作词云

    作业介绍 作业目标 Python爬取腾讯视频<在一起>评论,利用分词器处理数据,生成词云,将代码上传到Github 作业源代码 第一次个人编程代码 时间记录 步骤 具体做法 时间 1. 进 ...

  9. Python制作词云视频(使用B站视频及弹幕文本)

    Python制作词云视频-目录 使用到的第三方库 项目思路和代码流程 B站弹幕爬取 思路 实现 参考代码 视频下载 思路 参考命令 视频.音频剪辑和音频提取 思路 参考代码 视频帧提取 思路 参考代码 ...

最新文章

  1. 客户端动态调用WCF服务中的方法
  2. SQLite的sqlite_sequence表
  3. 机器学习 Softmax classifier (无隐含层)
  4. 一个完整的DS1302时钟在STM32上的应用实例
  5. 寒霜朋克计算机丢失,寒霜朋克玩不了怎么办 寒霜朋克进不去解决方法
  6. php e error,E_ERROR定义与用法汇总
  7. Python多态、鸭子类型
  8. .NET的托管堆中是否可能出现内存泄漏现象
  9. GridView中的超级链接
  10. 知富柜台系统服务器,商业银行柜面无纸化安全解决方案
  11. 关于PC电脑微信进粉计数器的选择?
  12. 京东健康打开医疗服务的“脑机”接口
  13. 英国内政大臣表示社交软件加密不能太严
  14. 【MySQL数据库系列】一、认识数据库、建库建表操作
  15. Restful风格的验证码
  16. 关于ATSHA204a的使用流程
  17. 2011年最新企业offer
  18. 【AD常见问题】STM32C8T6最小系统板的间距
  19. java快速开发平台 1
  20. C++中cos,sin,asin,acos这些三角函数操作的是弧度,而非角度,

热门文章

  1. pinyin4j的用法
  2. 重新编译Opencv:Opencv3.2.0+CUDA7.5+VS2013+Cmake3.8+Quadro K620显卡+Win7系统
  3. 什么是运营呢,谈谈你对运营的认识。
  4. 用Excel如何将文本转换为数字的七种方法
  5. OpenRTMFP/Cumulus Primer(20)Cumulus的一个线程启动 Bug
  6. html怎么让歌一直播放,怎样可以让背景音乐一直保持在播放状态
  7. redis+mysql缓存
  8. 动漫人物五官比例怎么画好看?手把手教你画五官教程
  9. 华为手机一键修改serial信息
  10. 还不会华为交换机如何恢复出厂设置的,看这里