前言

这是本人这学期云计算课程自己构思设计的综合实验作品,看标题就知道是通过python实现的,且和豆瓣电影密不可分。本人想法是做一个具有普适性的系统,不仅可以用于交作业,而且自己也可以从中获得便利。
详细请看接下来的介绍。

一、项目介绍

1、 系统简述
首先通过网页开发者工具分析豆瓣电影网站,然后使用抓包工具拦截数据,从中找出api接口,接下来使用Python爬虫进行数据的下载。数据下载完后,使用pandas模块处理csv电影数据文件,之后可以选用各种数据分析的方法对数据进行挖掘,包括但不限于关键词提炼、词频统计、相关性探索、电影分类,再通过matplotlib绘制数据统计图如条形图、饼状图,亦或是wordCloud绘制评论词云。
2、 数据来源
豆瓣电影官方网站:https://movie.douban.com/
3、系统架构图
在这里插入图片描述
4、项目目录结构
在这里插入图片描述
5、开发环境及SDK
开发环境:Windows10操作系统,Python3.7.4
开发工具:Pycharm, jupyter notebook,Fiddler
依赖库:pyecharts
matplotlib== 3.1.1
numpy== 1.19.5
pandas== 1.1.5
lxml== 4.4.1
fake_useragent== 0.1.11
requests== 2.22.0
wordcloud== 1.7.0
jieba== 0.42.1
Pillow== 8.2.0

6、项目代码
项目代码比较多,这里就不无脑贴。代码已开源到Gitee上:
https://gitee.com/reganzhx/douban-movie-system,直接下载运行即可食用。

二、效果展示

1、 爬虫运行效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、 针对某部电影的分析结果
千与千寻 千と千尋の神隠し为例:
a. 不同时间影评人数
在这里插入图片描述
b. 影评推荐指数
在这里插入图片描述
c. 短评内容词云
在这里插入图片描述
3、 随机多部电影的综合分析结果
调整过后的dashboard.html
在这里插入图片描述
这个静态网页是可以动态点击的,查看统计结果非常方便,不过整齐的样式需要自己布置这也是致命缺点,没法动态绑定数据。

三、 项目分析

1、 豆瓣电影爬虫的分析
豆瓣电影官网虽然没有令人窒息的反爬操作,但是接口较为隐蔽,需要通过Fiddler抓包工具辅助,才能找到电影数据接口。编写爬虫时使用xpath对网页数据进行提取,使用正则表达式过滤冗余文本数据并对文本进行清洗。爬虫运行过程中要控制爬取速度,否则在运行时不会出现爬取问题,但经过一段时间后豆瓣官网检测到本台主机IP的不正常请求,就会对IP进行封锁,阻止下一次大规模爬取。通过登录豆瓣账号获得Cookie可以减缓这一点,并且可以访问到更多的数据量,不过并不能保证不会被封号。最后将爬取数据保存为csv文件,方便后期使用pandas等做数据处理。
2、 针对某部电影的数据分析
从不同时期影评人数、影评推荐指数、短评内容三个角度入手分析,不同时期的影评人数可以间接反映电影的热度,因为大多数人都是在电影刚上映观影完后写的影评;影评推荐指数可以直接看出观众对电影的喜好程度,对最热门的评论的汇总更能体现这部电影在大众中的影响力,而不是单靠官方给出的豆瓣评分;短评词云可以体现电影的许多要素,比如演员、题材、主要情节剧情、观众评价,可以让影迷马上把握该电影脉搏,从而决定这部电影是否值得一看。
3、 随机多部电影的综合数据分析
如果说针对某部电影的分析是让影迷决定是否看该部电影,那么随机多部电影的综合分析结果就是指引影迷去观看哪部电影。使用随机序号生成器在热门电影列表中任意选择电影,然后可视化出电影评分排行榜、电影Top20高分排行榜,电影上映时间线和电影类型分布,多方位直观俯瞰热门电影行情。对于大众来说可以得知哪些电影近期更受欢迎,哪些电影评分高,电影在哪个时间段上映,从而发现自己喜欢的电影和属于自己的电影偏好。对于电影制作方,可以针对电影类型分布,保持哪些电影类型的产出,加大哪类电影的制作投入以顺应大众口味,甚至可以决策在什么时候上映哪些类型的电影能获得最大收益。

总结

麻雀虽小五脏俱全,这个项目还有很多改进可扩展的地方,比如设计一个前端网页进行展示,提供更多的爬虫选项定制爬取的电影数据,制作动态数据展示等。这期间我更体会到开发离不开官方文档的事实,有很多问题在官方文档里都可以得到解决。

参考网站

Pyecharts官方文档
matplotlib绘制直方图、条形图和饼图
用pyecharts生成仪表盘——将多张图片汇总到一个页面,大屏可视化数据展示
豆瓣电影页面爬虫2020版

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐