【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】

简介: 【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】

一、设计要求

猫眼电影排行榜爬取电影排行榜前100名的图片及片名(可延伸:可以将爬取电影的电影名称、主要演员、导演、上映时间、(评分)另存放在一个文本文件里),图片单独存放在一个文件夹里。


二、设计思路

爬虫代码

# 略。
# 略。
# 略。
# 略。
# 略。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈


使用for循环遍历不同页数的排行榜页面,每页显示10条电影信息(offset参数控制分页)。

发送HTTP GET请求获取页面内容,并打印响应文本。

使用lxml.etree解析HTML,提取电影名称、主演、上映时间等信息。

获取电影图片链接,并下载图片到指定文件夹。

将抓取到的电影信息追加写入到data.csv文件中。

在每次数据提取时,使用try-except块捕获并跳过可能的错误。

for i in range(0, 11):
        name = html.xpath(r'//*[@class="name"]/a/text()')[i].strip()
        star = html.xpath(r'//*[@class="star"]/text()')[i].strip()
        rtim = html.xpath(r'//*[@class="releasetime"]/text()')[i].strip()
        imges = html.xpath(r'//*[@id="app"]//a/img[2]')
        print(imges)
        img = [elem.get("data-src") for elem in imges][0]


这段代码通过循环遍历猫眼电影排行榜页面,抓取电影的相关信息(名称、主演、上映时间等)并保存到CSV文件,同时下载电影图片并保存到本地。


  1. 数据创建和预处理
    创建数据框
df = pd.DataFrame(data)
# 创建一个包含电影名称、主演、二演、三演和上映时间的DataFrame。
# 提取上映年份和创建时间段分段
df['上映年份'] = df['上映时间'].apply(lambda x: x[:4])
bins = [1990, 2000, 2010, 2020, 2030]
labels = ['1990-1999', '2000-2009', '2010-2019', '2020-2029']
df['上映时间段'] = pd.cut(df['上映年份'].astype(int), bins=bins, labels=labels, right=False)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈


三、可视化分析

2.1 柱状图:每个时间段上映的电影数量

period_counts = df['上映时间段'].value_counts().sort_index()
plt.figure(figsize=(10, 6))
period_counts.plot(kind='bar', color='skyblue')
plt.xlabel('上映时间段')
plt.ylabel('电影数量')
plt.title('每个时间段上映的电影数量')
plt.show()



统计每个时间段的电影数量。

使用plt.figure设置图表的大小。

使用period_counts.plot绘制柱状图。

设置图表的x轴标签、y轴标签和标题。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈


2.2 饼图:电影主演分布(前10名)

actor_counts = df['主演'].value_counts().nlargest(10)
plt.figure(figsize=(10, 6))
actor_counts.plot(kind='pie', autopct='%1.1f%%', startangle=140, colors=plt.cm.Paired(range(len(actor_counts))))
plt.ylabel('')
plt.title('电影主演分布(前10名)')
plt.show()


c473fdc5866c43f3889fd46967b759d5.png

统计主演出现次数最多的前10名。

使用actor_counts.plot绘制饼图。

autopct='%1.1f%%'用于显示百分比。

startangle=140用于设置饼图的起始角度。

colors=plt.cm.Paired(range(len(actor_counts)))用于设置饼图的颜色。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈


2.3 词云:电影名称

wordcloud = WordCloud(font_path='SimHei.ttf', width=800, height=400, background_color='white').generate(' '.join(df['名称']))

plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('电影名称词云')
plt.show()


使用WordCloud库生成词云。

设置字体路径、宽度、高度和背景颜色。

将电影名称拼接成一个字符串生成词云。

使用plt.imshow显示词云,并关闭坐标轴显示。


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈

相关文章
|
17天前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
20 2
|
16天前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
47 0
|
7天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
|
8天前
|
机器学习/深度学习 数据采集 数据挖掘
探索Python编程的奥秘
【10月更文挑战第7天】本文将带你走进Python的世界,探索其背后的逻辑与魅力。我们将从基础语法开始,逐步深入到函数、面向对象编程等高级特性,最后通过实际项目案例,让你体验Python的强大与便捷。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启发。
|
9天前
|
IDE 开发工具 Python
Python 编程入门:打造你的第一个程序
【10月更文挑战第6天】编程,这个听起来高大上又充满神秘感的领域,其实就像学习骑自行车一样。一开始你可能会觉得难以掌握平衡,但一旦你学会了,就能自由地穿梭在广阔的道路上。本文将带你走进 Python 的世界,用最简单的方式让你体验编写代码的乐趣。不需要复杂的理论,我们将通过一个简单的例子——制作一个猜数字游戏,来实践学习。准备好了吗?让我们开始吧!
|
6天前
|
数据采集 开发框架 数据处理
探索Python的灵活性:简化日常编程任务
【10月更文挑战第7天】 【10月更文挑战第9天】 在本文中,我们将深入探讨Python编程语言的强大功能和灵活性。通过具体的代码示例,我们会展示如何利用Python简化日常编程任务,提高效率。无论是数据处理、自动化脚本还是Web开发,Python都能提供简洁而强大的解决方案。我们还将讨论一些最佳实践,帮助你编写更清晰、更高效的代码。
10 1
|
11天前
|
存储 人工智能 Java
Python编程入门:从基础到实战
【10月更文挑战第4天】本文旨在为初学者提供一个全面而深入的Python编程学习路径。我们将从Python的基本语法和概念开始,然后逐步深入到更复杂的主题,如数据结构、面向对象编程和异常处理等。最后,我们将通过一些实际的项目案例,帮助读者将理论知识应用到实践中去。无论你是编程新手,还是有一定经验的开发者,都可以在这篇文章中找到适合自己的学习内容。让我们一起开启Python编程的学习之旅吧!
|
10天前
|
存储 人工智能 数据挖掘
探索Python编程:从基础到进阶
【10月更文挑战第5天】在数字时代的浪潮中,掌握编程技能已成为一项宝贵的能力。本文旨在为初学者提供一个深入浅出的Python编程之旅,从基本概念到实际应用,逐步揭示编程之美。无论你是编程新手还是希望深化理解,跟随这篇文章的脚步,你将学会如何用Python语言构建你的第一个程序,并了解代码背后的逻辑。让我们开始吧,解锁编程的秘密,开启你的技术成长之路!
|
11天前
|
数据可视化 Python
Python编程之数据可视化入门
【10月更文挑战第4天】在数字时代的洪流中,数据如同星辰般璀璨,而将它们绘制成图表,便是我们探索宇宙的方式。本文将带你启航,用Python这艘航船,驶向数据可视化的奥秘。我们将从安装必要的工具包开始,逐步深入到数据的呈现,最后通过代码示例点亮知识的灯塔,指引你在数据海洋中航行。让我们握紧舵盘,乘风破浪,揭开数据背后的故事吧!
|
10天前
|
数据采集 程序员 开发者
Python编程入门:从基础到实战
【10月更文挑战第5天】本文旨在为初学者提供一条清晰的Python学习路径,涵盖基础知识、关键概念、实战项目以及常见问题解答。我们将通过简单易懂的语言和实际代码示例,帮助读者快速掌握Python编程技能。无论你是零基础的新手还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起开启Python编程之旅吧!