当前位置: 首页 > 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显示词云,并关闭坐标轴显示。

在这里插入图片描述

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


相关文章:

【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语法的发展,人们开始觉得上面的写法太复杂了&#xff0c…...

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>床前明月光&#xff0c;疑…...

017-GeoGebra基础篇-微积分函数求解圆弧面积问题

基础篇慢慢的走进尾声&#xff0c;今天给大家带来一个小项目&#xff0c;是关于高中数学微积分部分的展示&#xff0c;这个项目主要包含了函数的介绍、函数与图形绘制的区别、区域函数图像的绘制、积分函数的应用、动态文本的调用、嵌套滑动条的应用等等&#xff0c;以及其他常…...

Element中的选择器组件Select (一级选择组件el-select)

简述&#xff1a;在 Element UI 中&#xff0c;ElSelect&#xff08;或简称为 Select&#xff09;是一个非常常用的选择器组件&#xff0c;它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…...

数值分析笔记(五)线性方程组解法

三角分解法 A的杜利特分解公式如下&#xff1a; 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 官网下载地址&#xff1a;Maven – Download Apache Maven 下载后&#xff0c;将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意&#xff0c;通常为M2_HOME&#xff…...

成人高考本科何时报名-深职训学校帮您规划学习之路

你有想过继续深造自己的学历吗&#xff1f;也许你已经工作多年&#xff0c;但总觉得学历是一块心病&#xff0c;想要通过成人高考本科来提升自己。不用着急&#xff0c;今天我们来聊一聊成人高考本科的报名时间&#xff0c;以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...

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_通过命令行没有解决&#xff1a; sudo apt install libc6-dev libc6参考解决…...

计算机网络部分知识点整理

停止等待协议的窗口尺寸为 1。 √以太网标准是IEEE802.3TCP/IP四层&#xff0c;OSI模型有7层&#xff0c;地址解析协议 ARP 在 OSI 参考七层协议属于数据链路层&#xff0c;在TCP/IP 协议属于网络层&#xff0c;ARP作用&#xff1a;将 IP 地址映射到第二层地址&#xff0c;交换…...

【Qt】Qt概述

目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架&#xff0c;为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的&#xff0c;很容易扩展&#xff0c;同时Qt为开发…...

读书笔记-《魔鬼经济学》

这是一本非常有意思的经济学启蒙书&#xff0c;作者探讨了许多问题&#xff0c;并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么&#xff0c;再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想&#xff1a;假如道德代表人类对世界运转方式的期…...

2024.7.7总结

今天是惊心动魄的一天&#xff0c;记录一下吧! 昨天晚上害怕早上闹铃响了听不到&#xff0c;担心有意外出现&#xff0c;错过回家的车票&#xff0c;于是便在晚上设置了3个闹铃&#xff0c;6:50&#xff0c;7:00&#xff0c;7:05然后也关了静音。没想到&#xff0c;早上按照正…...

uniapp做小程序内打开地图展示位置信息

使用场景&#xff1a;项目中需要通过位置信息打开地图查看当前位置信息在地图那个位置&#xff0c;每个酒店有自己的经纬度和详细地址&#xff0c;点击地图按钮打开内置地图如图 方法如下&#xff1a; <view class"dttu" click"openMap(info.locationY,info.…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...