Python 基于豆瓣电影的可视化分析系统
Python 基于豆瓣电影的可视化分析系统前言一、项目介绍二、效果展示三、项目分析总结参考网站前言这是本人这学期云计算课程自己构思设计的综合实验作品,看标题就知道是通过python实现的,且和豆瓣电影密不可分。本人想法是做一个具有普适性的系统,不仅可以用于交作业,而且自己也可以从中获得便利。详细请看接下来的介绍。一、项目介绍1、系统简述首先通过网页开发者工具分析豆瓣电影网站,然后使用抓包工具拦截数
前言
这是本人这学期云计算课程自己构思设计的综合实验作品,看标题就知道是通过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版
更多推荐
所有评论(0)