【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显示词云,并关闭坐标轴显示。


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

相关文章
|
26天前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
58 6
|
1月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
48 9
|
1月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
67 3
|
1月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的房产销售管理系统源码+运行
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
46 2
|
2月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
2月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
96 28
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
2月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
50 4
|
2月前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
2月前
|
数据采集 搜索推荐 C语言
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。

热门文章

最新文章