最近在学习python爬虫以及数据分析,故想做一个简单的项目来检验一下自己最近的学习状况。在豆瓣上查看正在热映的电影有很多,选择了《黄蜂女现身》这部电影来练手,将豆瓣上对它的影评做一个简单的分析吧!后期还会继续对其他的电影进行分析,下次的分析可能会包括地区等属性,此次只是针对评论进行简单的分析。

1、抓取网页数据

首先是抓取网页数据,打开豆瓣电影,点击最近的热映电影后,点击全部评论,我们则选取改网址作为我们的数据来源地址。

import urllib.request
import redef movie_comment_Crawler(url):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/" "537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}  # 设置模拟请求头req = urllib.request.Request(url, headers=headers)response = urllib.request.urlopen(req)html_data = response.read().decode("utf-8")# 因为评论在span中,所以我就直接使用正则表达式来进行匹配pattern = r'<span class="short">(.*?)</span>'re_comment = re.compile(pattern, re.S)comment_list = re_comment.findall(html_data)comments = ''# 将comment_list列表转换为字符串字符for k in range(len(comment_list)):comments = comments + (str(comment_list[k])).strip()# 将评论保存到txt文件中path = "../豆瓣最新电影评论分析/antman_comments.txt"with open(path, "a", encoding="utf-8") as f:f.write(comments)# 设置评论的页数
for i in range(0, 10):url = "https://movie.douban.com/subject/26636712/comments?start="+str(i * 20)+"&limit=20&sort=new_score&status=P"movie_comment_Crawler(url)

2、数据清洗与分析

import re
import jieba   # 分词包
import pandas as pd
from wordcloud import WordCloud  # 词云包
import matplotlib.pyplot as plt
import numpy as np
from scipy.misc import imread# 读取comments文件
path = "../豆瓣最新电影评论分析/antman_comments.txt"with open(path, 'r', encoding='utf-8') as file:comments = file.readlines()comment = ''.join(comments)# 使用re正则表达式去除多余的标点符号
pattern = re.compile(r'[\u4e00-\u9fa5]+')filter_data = pattern.findall(comment)clean_comment = ''.join(filter_data)# 结巴分词
segment =jieba.lcut(clean_comment, cut_all=True)words_df = pd.DataFrame({"segment": segment})# 去除停用词
stopwords = pd.read_excel('stopwords.xlsx', index_col=False, quoting=3, sep="\t",names=["stopword"], encoding="utf-8")words_df = words_df[~words_df.segment.isin(stopwords.stopword)]# 词频统计 统计使用 groupby 函数,排序使用 sort 函数。
words_count = words_df.groupby(by=["segment"])["segment"].agg({"count": np.size})words_count = words_count.reset_index().sort_values(by=["count"], ascending=False)# 词云显示
bg_mask = imread("background.jpg")  # 读入自己想显示图片的背景wordcloud = WordCloud(font_path="simhei.ttf", background_color="white",max_font_size=100, max_words=200, width=400,mask=bg_mask)  # 指定字体类型、字体大小和字体颜色# word_frequence 为字典类型,可以直接传入wordcloud.fit_words()
word_frequence = ({x[0]: x[1] for x in words_count.head(500).values})wordcloud = wordcloud.fit_words(word_frequence)# 存储显示
plt.figure(figsize=(9, 6))
plt.imsave('antman.jpg', wordcloud)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

其实图上显示的高频词貌似做的不是很好,毕竟是第一次做的,我还没有真正学习过词云和高频词统计,结巴分词等,都是在网上看别人怎么做的,很多内容都做的不好,望大家批评指正!

Python分析《黄蜂女现身》豆瓣影评分析相关推荐

  1. 朴素贝叶斯情感分析评分python_「豆瓣影评」从爬取豆瓣影评到基于朴素贝叶斯的电影评论情感分析(上) - seo实验室...

    豆瓣影评 一.爬取豆瓣影评 基本思路:先获取每个电影的评论区链接,然后依次进入其评论区爬取评论.选取10部电影,每部200条评论. 用到的包为:BeautifulSoup,urllib 这里选取的链接 ...

  2. 用 Python 爬取 500 条豆瓣影评,看看《蚁人2》是否有看点?

    作者 | 量化小白H 责编 | 郭芮 "不以大小论英雄."<蚁人2>已热映多天,本文就来看看豆瓣电影上的这部片子评分如何,从代码和数据层面给出最客观的解读. 作为练手, ...

  3. Python爬虫实践《流浪地球》豆瓣影评分析及实践心得

    一段多余的话 多余的话不多说,我想聊聊在进行实践分析中遇到的困难与心得. 下载jupyter进行分析的一些建议 我们安装juputer前,首先需要安装python,因为本人曾经上过自然语言处理课,所以 ...

  4. python爬虫实战:《星球大战》豆瓣影评分析

    #################更新于2018.2.2.彻底搞定小问题.开心############################ ''' Windows 7 系统 Sublime text 编辑 ...

  5. 爬虫实战之《流浪地球》豆瓣影评分析(一)

    背景与挖掘目标 获取豆瓣评论数据 分析好评与差评的关键信息 分析评论数量及评分与时间的关系 分析评论者的城市分布情况 1. 背景与挖掘目标 豆瓣(douban)是一个社区网站.网站由杨勃(网名&quo ...

  6. python 豆瓣评论数据分析_Python爬虫实战案例:豆瓣影评大数据分析报告之网页分析...

    个人希望,通过这个完整的爬虫案例(预计总共4篇短文),能够让爬虫小白学会怎么做爬虫的开发,所以在高手们看来,会有很多浅显的废话,如果觉得啰嗦,可以跳过一些内容~ 上一篇文章给大家简单介绍了Python ...

  7. python电影评论的情感分析流浪地球_《流浪地球》影评分析(一):使用Python爬取豆瓣影评...

    本文爬虫的步骤: 使用Selenium库的webdriver进行网页元素定位和信息获取: 使用BeautifulSoup库进行数据的提取: 使用Pandas库进行数据的存储. 后台回复python爬虫 ...

  8. 如何基于谷歌的最强 NLP 模型进行影评分析?

    谷歌此前发布的NLP模型BERT,在知乎.Reddit上都引起了轰动.其模型效果极好,BERT论文的作者在论文里做的几个实验数据集都被轰平了.要做那几个数据集的人可以洗洗睡啦,直接被明明白白地安排了一 ...

  9. 爬虫实战2(上):爬取豆瓣影评

       这次我们将主要尝试利用python+requsets模拟登录豆瓣爬取复仇者联盟4影评,首先让我们了解一些模拟登录相关知识补充.本文结构如下: request模块介绍与安装 get与post方式介 ...

最新文章

  1. ORB-SLAM2实现(kinect V1/ROS)
  2. 哪些数据可以放进缓存?记录生产环境一次缓存评估的过程
  3. HDU 2602 Bone Collector DP(01背包)
  4. 软件建模——第3章 项目前期
  5. ASP.NET Session详解
  6. (七) UVC框架分析
  7. office另存为pdf的加载项_你可能需要用到的office转换技巧
  8. 寒假作业2:币值转换
  9. 基于vue2.0与追书神器api的小说阅读webapp
  10. update set命令用来修改表中的数据
  11. 投标是个技术活,不这样做要么苟且,要么狗带
  12. 汇编堆栈平衡的几种方式
  13. 学习笔记(02):程序员的数学:微积分-常用导数(二):最常用到的技巧
  14. 字符串的解读和标签模板
  15. R语言使用rbind函数将两个dataframe数据纵向合并起来(vertically)
  16. Docker安装PHP-FPM5.6 (自带redis扩展,Mysql扩展,GD库扩展(支持JEPG))
  17. 用MATLAB绘制两个圆相切,教您用几何绘图工具画三个两两相切的圆
  18. 关于office2016 程序停止运行。。。的问题
  19. 注意力机制——Spatial Transformer Networks(STN)
  20. mysql select 反选_checkbox的全选与反选

热门文章

  1. 看完这些,你还敢说你已经了解iPhone 6s?
  2. B站设置NFT小钻石头像教程
  3. linux 重启redis 命令
  4. 网站url路径优化方法完全讲解 (url优化、基于tp5、API接口开发)
  5. reverseFind()
  6. 基于java校园学生信息管理和新生报到系统设计与实现(springboot框架)毕业设计毕设作品
  7. 三星android是什么手机,凭什么三星手机能被叫做是安卓机皇,而小米、华为则没有呢?...
  8. 北师大计算机作业答案0651,湖南大学考研网信息:2017研究生考试复试分数线
  9. window 便笺的快捷键
  10. 分发糖果的程序设计代码_糖果为您设计的颤动交互引擎