作为一名漫威迷,观影之后,我便想看看大家对复仇者联盟4的评价如何。当然,作为一名程序员,应当通过程序来实现对影评数据的分析。下面,通过利用猫眼提供的电影接口,我将展示如何对复仇者联盟4的影评数据进行分析。

1.抓取数据

这里我们通过请求猫眼的API来抓取数据,借助的工具是 requests。接口地址如下:(http://m.maoyan.com/mmdb/comments/movie/248172.json?_v=yes&offset=1),其中,248172 表示猫眼中该电影的id(直接从猫眼官网得到),offset表示偏移量,简单理解就是页数
利用requests发送请求并拿到接口所返回的JSON数据:

import requests
import pandas as pd
import numpy as npbase_url = "http://m.maoyan.com/mmdb/comments/movie/248172.json?_v_=yes&offset="# 爬取每一页的评论
def crawl_one_page_data(url):headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36",}response = requests.get(url, headers=headers)if response.status_code == 200:return response.json()return None# 解析每一个获得的结果
def parse(data):result = []# 影评数据在 cmts 这个 key 中comments = data.get("cmts")if not comments:return Nonefor cm in comments:yield [cm.get("id"), # 影评idcm.get("time"), # 影评时间cm.get("score"), # 影评得分cm.get("cityName"), # 影评城市 cm.get("nickName"), # 影评人 cm.get("gender"), # 影评人性别,1 表示男性,2表示女性cm.get("content")] # 影评内容# 爬取影评
def crawl_film_review(total_page_num=100):data = []for i in range(1, total_page_num + 1):url = base_url + str(i)crawl_data = crawl_one_page_data(url)if crawl_data:data.extend(parse(crawl_data))return datacolumns=["id", "time", "score", "city", "nickname", "gender", "content"]
df = pd.DataFrame(crawl_film_review(4000), columns=columns)
# 将性别映射后的数字转为汉字
df["gender"] = np.where(df.gender==1, "男性", "女性")
# 根据id去除重复影评
df = df.drop_duplicates(subset=["id"])
df.head()

输出结果如下:

#保存本次所抓取的数据
df.to_csv("复仇者联盟影评_1000.csv", index=False)
f = open("复仇者联盟影评_1000.csv",encoding="UTF-8")
df = pd.read_csv(f)
df.head()

注意
这里数据文件名中含有中文名,所以需设置encoding = UTF-8模式

2.性别分析

from pyecharts import Pie# 求出不同性别出现的次数
gender_count = df.gender.value_counts().to_dict()pie = Pie("性别分析")
pie.add(name="", attr=gender_count.keys(), value=gender_count.values(), is_label_show=True)
pie

3.评分分布

from pyecharts import Bar# 求出不同评分出现的次数
score_count = df.score.value_counts().sort_index()
score_list = score_count.index.tolist()
count_list = score_count.tolist()bar = Bar("评分分布", width=450, height=450)
bar.add("", score_list, count_list)
bar

4.不同性别评分的差异

# 求出不同性别评分的均值
sex_score_mean = df.groupby(["gender"])["score"].mean().to_dict()bar = Bar("不同性别评分的差异", width=450, height=450)bar.add("", list(sex_score_mean.keys()), list(sex_score_mean.values()), is_stack=True)
bar

5.一线城市与二线城市的评分差异

# 求出不同城市评分的均值city_list = ["北京", "上海", "合肥", "南宁"]gender_city_score_mean = df[df.city.isin(city_list)].groupby(["gender", "city"], as_index=False)["score"].mean()city_data, city_index = pd.factorize(gender_city_score_mean.city)
gender_data, gender_index = pd.factorize(gender_city_score_mean.gender)
data = list(zip(city_data, gender_data, gender_city_score_mean.score.values))

6.影评词云图

这里我们设置的背景图为格鲁特:

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import jieba
import matplotlib.pyplot as plt# 将分词后的结果以空格连接
words = " ".join(jieba.cut(df.content.str.cat(sep=" ")))# 导入背景图
backgroud_image = plt.imread("格鲁特.jpg")# 设置停用词
stopwords = STOPWORDS
stopwords.add("电影")wc = WordCloud(stopwords=stopwords,font_path="C:/Windows/Fonts/simkai.ttf",  # 解决显示口字型乱码问题mask=backgroud_image, background_color="white", max_words=100)my_wc = wc.generate_from_text(words)ImageColorGeneratorimage_colors = ImageColorGenerator(backgroud_image)plt.imshow(my_wc )
# plt.imshow(my_wc.recolor(color_func=image_colors), )
plt.axis("off")
plt.show()

词云图结果:

复仇者联盟4影评数据分析相关推荐

  1. 基于TF的CNN 与LSTM/GRU 的《流浪地球》影评数据分析

    摘  要:为了通过影评数据反应电影<流浪地球>的口碑以及其造成热度,并核实网络水军恶意对其刷差评现象是否存在,本文利用猫眼PC端接口,通过控制时间参数,动态爬取了,<流浪地球> ...

  2. Spark-RDD实战影评数据分析一

    --------- 数据集下载 数据结构分析 本次所分析的数据有用户.电影.评分三个表,结构如下: 用户表 电影表 评分表 数据一瞥 数据分析 一共有十个需求,需求一到五作为学习参考,需求六到十自己动 ...

  3. 数据可视化-豆瓣影评数据分析(FineBI)

    目录 一.实验(实训)目的 二.实验(实训)原理或方法 三.仪器设备.材料 四.实验(实训)步骤 五.实训记录及结果 <------------------------------------- ...

  4. 基于python的影评数据分析_[Python] 通过采集两万条数据,对《无名之辈》影评分析...

    一.说明 本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论. 运行环境:Win10/Python3.5. 分析工具:jieba.wordcloud.pyecharts.m ...

  5. 《隐秘的角落》影评数据分析

    一.研究背景 随着移动互联网和智能设备的不断发展,人们的生活质量也不断地提高,可以通过互联网在线对电视剧进行评价评分.电视剧的热播不但给电视剧市场带来巨大的经济利益,同时也给电视剧主演们带来巨大的名气 ...

  6. 基于python的影评数据分析_基于Python聚焦型网络爬虫的影评获取技术

    龙源期刊网 http://www.qikan.com.cn 基于 Python 聚焦型网络爬虫的影评获取技 术 作者:郭向向 郑嘉慧 苗学芹 来源:<时代金融> 2019 年第 11 期 ...

  7. 流浪地球热门影评数据分析

    既然已经获取到了数据,下面就可以开始进行数据分析了 (数据爬取的文章在这里https://blog.csdn.net/weixin_44508906/article/details/87904982) ...

  8. Spark影评数据分析三

    在上一篇我们已经学习了前五个需求如何实现,现在看看后五个. 需求六 package movie import org.apache.spark.rdd.RDD//求最喜欢看电影(影评次数最多)的那位女 ...

  9. html登录界面设计代码_Python登录豆瓣并爬取影评

    Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置.主题等) 浏览器行为跟踪(如跟踪分 ...

最新文章

  1. 独家|OpenCV 1.7 离散傅里叶变换
  2. python自动化上传图片_接口自动化之Python3_Requests之上传头像
  3. matlab输入数组出曲线,用鼠标画出曲线,并将曲线所经过的点保存到数组中
  4. 线性代数及其应用(part3)--对角化
  5. android动画笔记二
  6. python实验题_python实验二
  7. Elasticsearch(二) ik分词器的安装 以及 自定义分词
  8. 上海找python工作容易吗_Python 在上海什么程度才能找到工作?
  9. m1136能支持哪些服务器,实测惠普M1136无线一体机,成就精英效率!
  10. JAVA能写大型游戏么?
  11. 为什么我不给孩子看国产动漫?看看这5部法国动漫,你就知道了!【转】
  12. 百度地图,定位,添加图标
  13. Element table 导出Excel重复数据
  14. 2021年第四届“传智杯“大学B组
  15. 私募证券基金动态-12月报
  16. 一张图把DCDC电源拓扑“融会贯通”
  17. 树莓派挂载硬盘以及播放视频
  18. 【中科蓝讯】DAC的输出方式配置
  19. [Matlab]FIR滤波器设计:(线性相位滤波器的特性)
  20. 学习python爬虫一个月的小兄弟,是如何日赚800实现经济独立的

热门文章

  1. mql4 c语言,MT4编程之MQL4编程语言介绍
  2. 航模无人机中PWM信号频率浅谈
  3. 【Linux】常见指令汇总
  4. 【风险管理】(第三篇)风险管理报表体系
  5. 教你一招:安全打开U盘的方法
  6. 解读全球云产业:一样的“云”,不一样的“推手”
  7. 海南计算机的初中学校有哪些,海南海口十大初中排行榜
  8. Spring Boot 下 zookeeper搭配dubbo 服务注册与发现 搭建
  9. SSM基于微信小程序的外卖点餐系统 毕业设计-附源码2711704
  10. 面向对象的思维方法 (转)