当前位置: 首页 > news >正文

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

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【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()

在这里插入图片描述
统计主演出现次数最多的前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显示词云,并关闭坐标轴显示。

在这里插入图片描述

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


http://www.lryc.cn/news/393808.html

相关文章:

  • Android 四大组件
  • 【Python】已解决:ModuleNotFoundError: No module named ‘nltk’
  • 【Docker系列】Docker 命令行输出格式化指南
  • 使用Netty构建高性能的网络应用
  • C++11新特性【下】{lambda表达式、可变模板参数、包装器}
  • SpringBoot使用手册
  • HTML CSS 基础复习笔记 - 列表使用
  • 017-GeoGebra基础篇-微积分函数求解圆弧面积问题
  • Element中的选择器组件Select (一级选择组件el-select)
  • 数值分析笔记(五)线性方程组解法
  • IDEA中Maven的配置
  • 成人高考本科何时报名-深职训学校帮您规划学习之路
  • C++ STL 协程(Coroutines)
  • 虚拟机下基于海思移植QT(一)——虚拟机下安装QT
  • 计算机网络部分知识点整理
  • 【Qt】Qt概述
  • 读书笔记-《魔鬼经济学》
  • 2024.7.7总结
  • uniapp做小程序内打开地图展示位置信息
  • leetcode 283.移动零
  • Unity | Shader基础知识(第十七集:学习Stencil并做出透视效果)
  • 【3D->2D转换(1)】LSS(提升,投放,捕捉)
  • MyBatis 框架核心及面试知识要点
  • 《linux系统内核设计与实现》-实现最简单的字符设备驱动
  • 【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境
  • [BJDCTF 2nd]简单注入
  • java项目的一些功能(完善登录功能、注册接口参数校验、完善分页查询、完善日期格式、更新文章分类和添加文章分类的分组校验、自定义校验、文件上传 )
  • Mac安装AndroidStudio连接手机 客户端测试
  • Git 完整的提交规范教程
  • 【TB作品】51单片机 Proteus仿真 00001仿真实物PID电机调速系统