周末全家人去做了场期待已久的电影,《复仇者联盟4》,视觉特效不用说,美国好莱坞大片,更有意思的是前后呼应,漫威十年,是一个结束也是一个新的开始。漫威十年的开启是钢铁侠,漫威十年的结束同样是钢铁侠,这是一种情怀,一种回忆,值得去看。
到猫眼电影(https://maoyan.com/)上看了看,发现已经有了很多影评,此前做过几个豆瓣影评爬虫和数据分析的案例(Python实现侏罗纪世界2影评分析案例, Python爬取豆瓣《复仇者联盟3》影评并分析案例),我这一次就不再从豆瓣上爬影评了,尝试从猫眼电影上爬取影评,然后做数据分析——这也是我当时下决心开始学习Python的原因之一,人工智能和数据分析,这是Python的两大应用领域。
Python写爬虫已经非常熟练了,写起来并没有什么难度,主要在于找到网址,爬取数据,提取数据,然后写入CSV文件——中文乱码是一个坑,不过早就踩过知道怎么写,然后,就没有什么问题了。在这案例中我爬取了猫眼电影上《复仇者联盟4:终局之战》54730条影评信息用于分析——从4月24日到今天才4天时间,就有了这么多影评——这个数字还在快速增长,由此可见这个电影有多火了。
Python做数据分析,主要用到了pyecharts和matplotlib这两个类库,用的多了就没有什么难度了,然后做词云图(WordCloud),继续用Jieba做中文分词——据说目前有了更高级的中文分析类库,改天我有时间了研究一下,到目前为止Jieba中文分词用得最熟练。
影评文字分析词云图:
从这个影评文字分析词云图就可以看出,在这部电影里的第一主角就是是钢铁侠,这是复仇者联盟的终局之战,也是钢铁侠的终局之战。在这个词云图中有两个词条:钢铁和Iron Man,而灭霸是电影中绝对的反派。
另外,我们注意到词云图中有两个词条:三千和Three thousand,这两个词条源于钢铁侠在剧中和女儿的对话:I love you, three thousant times.
在这部电影中,钢铁侠有了一个可爱的女儿,但是地球需要他,要逆转未来需要他的参与才能突破量子领域返回过去拿回无限宝石,然后打一个响指让消失的那一般人回来,钢铁侠在纠结中哄女儿睡觉,他的女儿对他这么说。然后再最后一战前,钢铁侠怕自己挂掉,提前录像对女儿说了这句话。最后,钢铁侠挂掉了,在他的葬礼上播放了这个录像。这是一个非常令人感动的故事。
除了词云图外,对于影评信息做了一些几个有意思的分析,应用了echarts前端数据可视化工具,非常简单就可以实现。
观众地域分布-地理坐标图:
观众地域排行榜单-柱状图:
观众评论日期-柱状图:
备注:爬取下来的影评数据量只有周末两天的。
观众评论时间-柱状图:
备注:符合我们中国人的生活作息习惯。
这个案例的Python程序的源代码已经上传到github,需要的可以直接点击下载(下载前请点个赞,加个星star):
https://github.com/hanshiqiang365/webscraping_demo
网络爬虫是一种很有用的技术,用以爬取海量数据用于数据分析和机器学习,但是需要注意数据安全和数据隐私。
在本案例中爬取到的猫眼电影影评数据只用于学习和研究。
韩思先生,韩世强,在外企工作,英文名或者说德文名是HANS,因此笔名韩思先生。职业IT经理人,半个文化人。好读书,好写作,好爬山,现定居大连。从事IT行业近二十年,积累了丰富的IT软件项目实施和管理经验,做过程序猿,产品狗和运营猫,知识面较广,并且喜欢总结和分享。