⾖瓣top250影⽚爬取信息和数据可视化
⼀、项⽬简介
1.1 项⽬博客地址
1.2 项⽬完成的功能与特⾊
利⽤爬⾍对⾖瓣评分top250的电影进⾏爬取,获取电影相关信息,并对获取到的数据进⾏数据分析。通过数据可视化,将数据具体化更加直观地了解电影信息。实现的模块功能有:
① 抓取top250电影的上映时间、国家、评分、类型、评价⼈数、导演、参演演员信息;
② ⾖瓣top250电影评价⼈数统计柱状图
③ Top250电影导演作品数top10统计柱状图
④ Top250电影中评论top20统计柱状图
⑤ Top250电影类型数量占⽐饼图
⑥ Top250影⽚作品评分折线图
⑦ Top250影⽚华语电影类型数量圆形图
⑧ Top250影⽚作品上映年份统计柱状图
⑨ 2000年top250影⽚上映类型统计环形图
⑩ Top250影⽚优秀演员参演统计漏⽃图
 Top250影⽚词云图
 2019年评分最⾼华语电影top7 3D分析图
1.3 项⽬采⽤的技术栈
使⽤软件:Visual Studio Code、JetBrains PyCharm
采⽤技术:pyecharts、MongoDB、python第三⽅库
1.4 项⽬借鉴源代码的地址
1.5团队成员任务分配表
陈佳萍
对爬取到的top250影⽚信息,实现top10导演作品数量、华语电影类别⽐重、统计2000年上映影⽚类型⽐重,并绘制环形图、top250影⽚作品评分折线图
吴琳琳
将⾖瓣top250数据爬取信息并保存在Mongodb中、分析⾖瓣top250电影类型数量占⽐、top20电影评分柱状图、以及上映年份统计图
肖茹云
⾖瓣评价⼈数top20电影、⽣成华语前七星级获分对⽐三维柱状图、⽣成词云图
⼆、项⽬的需求分析
针对影视作品越来越多,层次不穷,通过对⾖瓣top250影⽚爬取和分析,更加直观选择观看影⽚。
三、项⽬功能架构图、主要功能流程图
1.1 功能架构图
图1  功能架构图
1.2 主要功能流程图
图2 爬⾍爬取
图3 top10导演
mongodb和mysql结合图4 三维柱形图
图5 词云图
四、系统模块说明
1.1 系统模块列表
图6 项⽬结构图
1.2 各模块详细描述(名称,功能,运⾏截图,关键源代码)
1、mvtop250.py :实现对⾖瓣top250的影⽚信息爬取
1) 构建递归循环,逐页爬取
2) 建⽴Mongodb连接,⽤于数据保存
3) 抓取top250电影的上映时间、国家、评分、类型、评价⼈数
def get_movie_list(url,headers):
# 实例化soup对象,便于处理
soup = (url,headers=headers) #向⽹站发起请求,并获取响应对象
response = ,'lxml')#利⽤xml html解析器,具有容错功能
lists = response.select('div.info')
#循环获取信息
for list in lists:
#获取链接,也就是获取a链接中href对应的值;
sing_url =list.select('a')[0].get('href')
#获取影⽚名称
name =list.select('div.hd .title')[0].text
#导演及主演
type_list = list.select('div.bd p')[0].text.strip('').split('...')[-1].replace(' ','').split('/')
#上映时间
year =type_list[0]
#国家
country = type_list[1]
#影⽚所属类别
category = type_list[2]
#获取影⽚评分
star = list.select('div.bd .star .rating_num')[0].place(' ','')
#获取引述
quote =list.select('div.bd .quote')[0].text
#获取评论⼈数
people_num = list.select('div.bd .star span:nth-of-type(4)')[0].text.split('⼈')[0]
get_detail_movie(sing_url,name,year,country,category,star,quote,people_num,headers) 4) 抓取top250电影的执导导演、参演演员,并保存数据到mongodb中
我们将获取到影⽚信息数据保存到数据库中,以便后⾯对数据的分析,效果如下:
2、Top250影⽚华语电影类型数量
效果如下:
3、top10导演.py :对爬取到的信息进⾏分类整理,统计作品数前10的导演,以及数据可视化
1)统计所有导演数量
2)统计作品数前10导演
3)绘制柱状图
4)效果如下
4、2000年上映影⽚类型⽐重
1)统计和提取2000年上映影⽚数量类型与华语上映电影类型相同,2)绘制环形图
效果如下:
5、评论⼈数分析、以及Top250电影中评论top20统计图
1)对爬取的影⽚评论⼈数进⾏分析
2)绘制柱状图
效果如下:
1)⾖瓣top20电影评论⼈数
2)⾖瓣top20评分情况
6、yanyuan.py:分析优秀演员参演作品数量
1)对获取到的演员列表进⾏分析
2)绘制漏⽃图
效果如下:
7、作品上映年份统计以及折线图
1)作品上映年份统计
2)作品与评分折线图
根据爬取到的⾖瓣影⽚信息⽣成的csv中读取数据⽣成折线图
8、top250影⽚词云图以及2019年评分最⾼华语电影top7 3D分析图1)根据爬取到的⾖瓣影⽚信息⽣成的csv中读取数据⽣成词云图
效果如下:
2)2019年评分最⾼华语电影top7 3D分析图
五、项⽬总结
5.1 特点
利⽤不同的技术,实现爬取,数据保存,数据可视化。使⽤mongodb存放数据,利⽤pyecharts包实现数据可视化。使⽤ render() 渲染⽣成html⽂件后,创建index⽂件将所有渲染的html ⽂件进⾏连接。
在原有的基础上,添加top250影⽚中华语上映影⽚类型数量圆形图、2000年上映影⽚类型数量环形图、top250上映影⽚年份统计图以及影⽚作品评分折线图、top250中评分top20影⽚柱状图;
同时新增2019年评分最⾼华语电影top7 3D分析图。
5.2 不⾜之处
1.爬取数据数量有限。
2.数据量⼤,爬取速度慢。
3.⽆法识别链接重要程度,不能判断⽹页数据的价值程度。
4.使⽤Mongodb作为数据存储,⽽不是⽤MySQL
5.在设计⽣成年份统计图中,x轴的年份参数出现重复值,并且图形超出x轴;在设计折线图中,由于数量过多,x轴数量挤在⼀起,影响可读性。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。