【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文件,同时下载电影图片并保存到本地。
- 数据创建和预处理
创建数据框
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显示词云,并关闭坐标轴显示。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 猫眼 ” 获取。👈👈👈
相关文章:
【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
Android 四大组件
1. Activity 应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件,也可以监听并对用户的事件做出响应。 Activity之间通过Intent进行通信,在Intent 的描述结构中,有两个最重要的部分:动…...
【Python】已解决:ModuleNotFoundError: No module named ‘nltk’
文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时,我们经常会用到各种库来辅助我们的工…...
【Docker系列】Docker 命令行输出格式化指南
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
使用Netty构建高性能的网络应用
使用Netty构建高性能的网络应用 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Netty是一个基于Java NIO的异步事件驱动的网络应用框架,专为快速开发高性能、高可靠性的网络服务器和客户…...
C++11新特性【下】{lambda表达式、可变模板参数、包装器}
一、lambda表达式 在C98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法。如果待排序元素为自定义类型,需要用户定义排序时的比较规则,随着C语法的发展,人们开始觉得上面的写法太复杂了,…...
SpringBoot使用手册
SpringBoot使用手册 1、自动装配 1.1、创建spring Boot项目 在之前的文章中已经专门写过,这里不做赘述。 1.2、pom.xml 1.2.1、版本管理 在学习完maven项目后,我们学习框架时首先阅读的就是pom.xml文件,这里是管理自己该项目中所用到的…...
HTML CSS 基础复习笔记 - 列表使用
用于自己复习 自定义列表 示例代码 <!DOCTYPE html> <html> <head><title>Definition List Example</title> </head> <body><h1>古诗</h1><dl><dt>静夜思</dt><dd>床前明月光,疑…...
017-GeoGebra基础篇-微积分函数求解圆弧面积问题
基础篇慢慢的走进尾声,今天给大家带来一个小项目,是关于高中数学微积分部分的展示,这个项目主要包含了函数的介绍、函数与图形绘制的区别、区域函数图像的绘制、积分函数的应用、动态文本的调用、嵌套滑动条的应用等等,以及其他常…...
Element中的选择器组件Select (一级选择组件el-select)
简述:在 Element UI 中,ElSelect(或简称为 Select)是一个非常常用的选择器组件,它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…...
数值分析笔记(五)线性方程组解法
三角分解法 A的杜利特分解公式如下: u 1 j a 1 j ( j 1 , 2 , ⋯ , n ) , l i 1 a i 1 / u 11 ( i 2 , 3 , ⋯ , n ) , u k j a k j − ∑ m 1 k − 1 l b m u m j ⇒ a k j ( j k , k 1 , ⋯ , n ) , l i k ( a i k − ∑ m 1 k − 1 l i n u m k ) /…...
IDEA中Maven的配置
目录 1. 安装maven 2. 配置环境变量 3. IDEA中配置Maven 4. 配置仓库目录 1. 安装maven 官网下载地址:Maven – Download Apache Maven 下载后,将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意,通常为M2_HOMEÿ…...
成人高考本科何时报名-深职训学校帮您规划学习之路
你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...
C++ STL 协程(Coroutines)
一:什么是协程(Coroutines): 协程是轻量级线程,可以暂停和恢复执行,协程拥有自己的暂停点状态,协程暂停时,将当前状态保存起来,在恢复执行时会恢复之前保存的状态。 二:例子: #include <coroutine> #include <iostream>void doTheWork() {std::cout <…...
虚拟机下基于海思移植QT(一)——虚拟机下安装QT
0.参考资料 1.海思Hi3516DV300 移植Qt 运行并在HDMI显示器上显示 2.搭建海思3559A-Qt4.8.7Openssl开发环境 1.报错解决 通过下面命令查询 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_通过命令行没有解决: sudo apt install libc6-dev libc6参考解决…...
计算机网络部分知识点整理
停止等待协议的窗口尺寸为 1。 √以太网标准是IEEE802.3TCP/IP四层,OSI模型有7层,地址解析协议 ARP 在 OSI 参考七层协议属于数据链路层,在TCP/IP 协议属于网络层,ARP作用:将 IP 地址映射到第二层地址,交换…...
【Qt】Qt概述
目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架,为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的,很容易扩展,同时Qt为开发…...
读书笔记-《魔鬼经济学》
这是一本非常有意思的经济学启蒙书,作者探讨了许多问题,并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么,再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想:假如道德代表人类对世界运转方式的期…...
2024.7.7总结
今天是惊心动魄的一天,记录一下吧! 昨天晚上害怕早上闹铃响了听不到,担心有意外出现,错过回家的车票,于是便在晚上设置了3个闹铃,6:50,7:00,7:05然后也关了静音。没想到,早上按照正…...
uniapp做小程序内打开地图展示位置信息
使用场景:项目中需要通过位置信息打开地图查看当前位置信息在地图那个位置,每个酒店有自己的经纬度和详细地址,点击地图按钮打开内置地图如图 方法如下: <view class"dttu" click"openMap(info.locationY,info.…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

