python爬虫—豆瓣电影top250及数据分析!

时间:2024-03-15 22:01:47

豆瓣电影top250榜单想必大家都不陌生,上榜的电影都是经过时间的沉淀留下来比较经典。本次教程就是利用requests库实现对于top250榜单电影数据爬取,并对爬取的数据绘制图表进行可视化,做简单的数据分析。文章将分为两个部分:top250数据爬取和数据可视化。

top250数据爬取:

首先,打开豆瓣电影top250的网页,利用开发者工具对页面的数据进行简单的分析,用开发者选择项来选取要提取的数据(电影名字、上映时间、上映地区、评分、电影主题标语等等)


python爬虫—豆瓣电影top250及数据分析!


其次,要爬取全部数据,需要实现翻页功能;这里提供两种思路:第一种是每个页面的url是类似的,都有相似的构造结构,因此这里可以利用for循环实现翻页操作;第二种因为每一页(除了最后一页)都会有 下一页 标签,可以提取网页源码中标签隐藏的 链接进而访问。这里我采取的是第一种方式。


python爬虫—豆瓣电影top250及数据分析!


进而,后续我需要关于一些参演演员的名字,所以需要访问每部电影的二级网页,提取每部电影的导演和参演人员;


python爬虫—豆瓣电影top250及数据分析!


最后,爬取的时候加一下相应的headers(User-Agent、Cookies),设置一下爬取频率(time.sleep(5))会更为保险一点。最终爬取结果如下:


python爬虫—豆瓣电影top250及数据分析!

数据可视化


为了后续更好实现数据可视化,我将取的数据储存到mongodb中,将以电影评分、上映时间、上映地区、类型......方面来对这250部电影进行简单的数据分析,这里实现可视化利用的是pyecharts包。

这些经典电影的上映时间基本是从1990年开始到现在,每年都会产生一些不错的电影,其中2010年上映的好片数量最多,有13部之多(很尴尬,图中的标题写错了)。


python爬虫—豆瓣电影top250及数据分析!

产生这个现象可能取决于两个方面,一方面是源于制作电影技术的发展,不仅在场景转换,还是特效加成方面都能给片子加一些不一样的感觉;第二方面就是娱乐占比在人类社会中越来越大,当我们物质基本需求得到满足时,就要转向精神方面的层次,而对于电影的质量的追求也越来越高。


python爬虫—豆瓣电影top250及数据分析!

这张图展示的时豆瓣平台给某一部电影评价的人数统计,这里我筛选出来了评价人数最多的20部的电影;位居第一的是《肖申克的救赎》,共有1430010位网友评价;位于第最后一名的时《阿凡达》共有750249位网友评价。

python爬虫—豆瓣电影top250及数据分析!

从爬取的数据中对这些经典电影的导演做了一个简单的统计,对于导演作品数量进行了一个排名,取了前十名;本人对于导演大咖并不熟悉,在这个名单中只认识3名:宫崎骏作品7部(很牛),王家卫5部(了不起),李安4部(厚积薄发)。


python爬虫—豆瓣电影top250及数据分析!

上图是根据演员的参演作品数量做了一个“漏斗图”,在这250部经典电影中,参演作品数量最多就是哥哥张国荣,一共8部之多,我们这个时代的偶像,接下来就是张曼玉,参演过7部,而星爷跟刘嘉玲一共参演过4部,在当今时代演员的标杆。


python爬虫—豆瓣电影top250及数据分析!


在获取 电影来源国家 时,有些电影是两个或两个国家以上合拍的,所以在统计时,每当涉及一个国家时我都会对这个国家出的作品加一。电影数量最多的产源地是美国,共有138部,一方面时这个国家处于一个多元形态,能够碰撞不一样的题材,另一方面是美国的电影制作技术较为成熟,能够产出刺激视觉的片子;排在其后的是日本、英国等。


python爬虫—豆瓣电影top250及数据分析!

从上图我们可以了解到 爱情 题材的电影一直影迷的最爱,压力负行的时代 喜剧 题材的电影也变得越来越受欢迎,相对来说 科幻战争 的题材就不太符合大众的口味(在这里猜测一下,具有理性思维的工科男性还是比较喜欢这一题材)。

python爬虫—豆瓣电影top250及数据分析!

最后以一张词云图来对这篇文章做个结尾,这张词云图收录的是top250电影的全部qoute,也就是主题,这张图并不是借助python模块,是在wordArt网站上绘制的。


文中涉及所有源码的获取方式,关注公众号:Z先生点记;后天回复关键词:豆瓣top250 即可。