基于Python猫眼票房TOP100电影数据抓取

article/2025/11/10 22:55:20

本次爬取数据使用Python语言在jupyter notebook上爬取的,并使用数据生成了一些图表。

使用requests库抓取数据

本段代码提取(www.maoyan.com/board/4) 网页中所有信息.

import requests as req
import re
from bs4 import BeautifulSoup as bs
import time as tidef link(url):header = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.50","cookie" : "__mta=49569177.1634546762447.1635751930589.1635755537866.189; __mta=49569177.1634546762447.1635755537866.1636089904755.190; _lxsdk_cuid=17c92944154c8-0976821c9ff2ba-513c1f42-1fa400-17c9294415486; _lx_utm=utm_source=Baidu&utm_medium=organic; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1634709537,1634709791,1634709795,1635568974; __mta=246700987.1634548728665.1634549353008.1635568973951.3; uuid_n_v=v1; uuid=2B2B05903C7611EC9D395F5B080ABF0B13E32B82F40F483EA9968669224339F7; _csrf=04f1258f2b355ec8fc0e1f4b729b4545d23fc1610830265d79846b5d5b3fc7cf; _lxsdk=2B2B05903C7611EC9D395F5B080ABF0B13E32B82F40F483EA9968669224339F7; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1636089905; _lxsdk_s=17cee6e2ca2-e12-d9c-bd9||14"}res = req.get(url,headers = header)if res.status_code == 200:return bs(res.text,"lxml")return None

上面的代码中,cookie需要自己去更改。
打开猫眼界面(www.maoyan.com/board/4),cookie方式如图所示
在这里插入图片描述

BeatifulSoup解析URL,将数据存入csv文件

Title = []
Director = []
Actors = []
Rating = []
Income = []
Duration = [] 
Type = []
Region = []
Release = []
main_Type = []
Score = []for i in range(0,100,10):url = "https://maoyan.com/board/4?offset=" + str(i)movies = link(url).find_all("dd")for i in movies:img = i.find("img",class_ = "board-img").get("data-src")num = i.find("i").textname = i.find("a").get("title")actor = re.findall("主演:(.*)",i.find("p",class_ = "star").text)[0]release = re.findall("上映时间:(.*)",i.find("p",class_ = "releasetime").text)[0].split('(')[0].split('-')[0]      url1 = "https://maoyan.com" + i.find("p",class_ = "name").a.get("href")score = i.find("i",class_ = "integer").text + i.find("i",class_ = "fraction").textmovie = link(url1)       ti.sleep(2)director = movie.find("a",class_= "name").text.replace("\n","").replace(" ","")type1 = movie.find("li",class_="ellipsis").text.replace("\n"," ")type2 = movie.find("a",class_="text-link").text.strip()last_income = movie.find_all("div",class_="mbox-name")duration = re.findall(r'\d+',movie.find_all("li",class_="ellipsis")[1].text)region = movie.find_all("li",class_="ellipsis")[1].text.split('/')[0].strip()Region.append(region)Title.append(name)Director.append(director)Actors.append(actor)Rating.append(num)Release.append(release)main_Type.append(type2)Score.append(score)Duration.append(duration[0]+"分钟")         Type.append(type1)if(movie.find("div",class_="mbox-name")):income = Nonenum_temp = 0for income in  last_income:num_temp = num_temp+1                passif income:content = income.getText()income_temp = movie.find_all("div",class_="mbox-name")[num_temp-2].textelse:Income.append("暂无")continueif(income_temp=="暂无"):Income.append(income_temp)else:Income.append(income_temp+"万")print("Grab complete")

将数据存入csv文件

import pandas as pd
df = pd.DataFrame({'Rating':Rating,'Title':Title,'Director':Director,'Actors':Actors,'Income':Income,'Score':Score,'Duration':Duration,'Release':Release,'Type':Type,'Region':Region,'Main Type':main_Type})
df = df.set_index('Rating')
df.to_csv('./test.csv',encoding='utf_8_sig')
print('ok')

csv文件在这里插入图片描述

处理数据,生成图表

读取csv文件

import csv
from datetime import datetime
import matplotlib.pyplot as plt
import pandas as pd
import seaborn.apionly as sns 
from pylab import *
filename = 'test.csv'
data = pd.read_csv(filename)

各个区域电影占比的饼状图

readtxt = (",".join( data.Region.values))
readlist = readtxt.split(',')
dict_region = {}for every_region in readlist:if every_region in dict_region:dict_region[every_region] += 1else:dict_region[every_region] = 1region = []
num_region = []
region_value = 0
for key in dict_region:if(dict_region[key]<4):region_key = "其他"region_value += dict_region[key]else:region.append(key)        num_region.append(dict_region[key])region.append(region_key)        
num_region.append(region_value)    plt.rcParams['font.sans-serif']=['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize = (20,8),dpi = 100)color = ['#b1d1fc','#75bbfd','#2976bb','#acc2d9','#a2cffe','#c5c9c7','#276ab3','#b7c9e2','#49759c']
plt.title('Region')
explode = [0.04,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04]
plt.pie(x = num_region,labels = region,colors = color,autopct = '%0.1f%%',shadow = False,pctdistance = 0.8,explode = explode,startangle = 286)plt.legend(loc = "upper right",bbox_to_anchor = (0.7, 0, 0.5, 1))
plt.savefig('./region.png')
plt.show()

饼状图展示
在这里插入图片描述
代码资源已经上传
https://download.csdn.net/download/weixin_43165086/37368600


http://chatgpt.dhexx.cn/article/DjZ1vIlb.shtml

相关文章

基于猫眼票房数据的可视化分析

案例背景&#xff1a;由于最近《哪吒之魔童降世》的火爆&#xff0c;最新票房已经超过49亿&#xff0c;使我对国内票房的整体走势有了很大兴趣&#xff0c;究竟49亿的票房数据&#xff0c;在国内是处于一个什么水平&#xff1f;除了票房数据&#xff0c;又有哪些特征因素可以用…

ardruino控制继电器_Arduino 各种模块篇-继电器

现在按照既定想法&#xff0c;把所有的arduino模块依次尝试一边。 链接到我的arduino Uno 与arduino mega 2560 上 mega 2560有更多的io口&#xff0c;而且cache也很大。所以应该更有效果。幸好可以有arduino IDE 现在比较稳定的版本官方提供的是1.0.3的。 而我用的是ubuntu库里…

【继电器模块教程基于Arduino】

继电器模块教程基于Arduino 前言介绍继电器模块继电器引出线示例:使用继电器模块和 PIR 运动传感器控制灯![在这里插入图片描述](https://img-blog.csdnimg.cn/760e865a1e6b49d4a8f3e9fe1a0a6f74.png)前言 本文介绍如何使用继电器模块通过 Arduino 控制电源电压。我们对继电器…

8路USB继电器模块 windows Linux使用

模块采用USB及串口与外界通信&#xff0c;方便模块与PC机、单片机连接。模块正常的工作电压为5V&#xff0c;并为ICSE014A(8路继电器)模块配置5V电源接口。具体参数见下表&#xff1a; ICSE012A ICSE013A ICSE014A 单位 备注 CC 4 2 8 模块路数 I 400 250 700 …

ardruino控制继电器_arduino控制继电器

一、arduino控制继电器 典型的继电器结构原理图如下: 继电器有一个输入回路,一般接低压电源,有一个输出回路,一般接高压电源。 输入回路中有一个电磁铁线圈,当输入回路有电流通过,电磁铁产生磁力,吸力使输出回路的触点接通,则输出回路导电(通)。 当输入回路无电流通过,…

Arduino笔记实验(初级阶段)—继电器模块

Arduino笔记实验(初级阶段)—继电器模块 文章目录 Arduino笔记实验(初级阶段)—继电器模块前言一、电路图二、继电器模块实验代码实验效果展示 三、继电器模块实验总结 前言 自学笔记&#xff0c;没有历史知识铺垫&#xff08;省略百度部分&#xff09;,博主基于C代码编程,函数…

继电器模块典型电路图

当控制端电压为0时&#xff0c;Q1基极电压为&#xff08;12-0.711.3V&#xff09;,改变R1的大小便可改 变基极电流&#xff0c;当基极电流足够大时&#xff0c;三极管饱合。 为了验证以上的分析&#xff0c;我们搭了一个电路&#xff0c;R1取4.7K&#xff0c;此时基极电流为2.4…

固态继电器和电磁继电器模块

固态继电器和电磁继电器模块 固态继电器的特点直流固态继电器和交流固态继电器电磁继电器的特点直流固态继电器模块、交流固态继电器模块和电磁继电器模块测试比较固态继电器与电磁继电器的比较 原文链接&#xff1a;https://www.yourcee.com/newsinfo/2924340.html 交流固态继…

【继电器模块的电路设计和分析】

一.电路图 二.电路原理分析 1.功能 此继电器电路模块可以通过把左下角LED1的阴级与控制器引脚相连&#xff08;如图中与单片机P0.8引脚相连&#xff09;&#xff0c;从而可以通过控制引脚的高低电平来驱动继电器的开合。 2.驱动逻辑 当P0.8脚为低电平时&#xff0c;光耦PC817输…

常用继电器模块的PCB设计与实物分享

今天分享一下自己做的一块继电器模块&#xff0c;因为之前有用到继电器模块的原理图&#xff0c;索性自己画了一下&#xff0c;原理图如图所示&#xff1a; 一、原理图&#xff1a; 继电器模块还是比较简单的&#xff0c;就是通过三极管的开关作用来使电路导通&#xff0c;从而…

4入4出Modbus RTU继电器模块说明书

产品特点 DC7-30V&#xff1b; 继电器输出触点隔离&#xff1b; 通信波特率&#xff1a;2400,4800,9600,19200,38400&#xff08;可以通过软件修改&#xff0c;默认9600&#xff09;&#xff1b; 通信协议&#xff1a;支持标准modbus RTU协议&#xff1b; 可以设置0-255个…

51单片机驱动继电器模块点灯

51单片机驱动继电器模块点灯 继电器的简介继电器模块引脚定义继电器模块的工作原理继电器模块使用接线图51单片机控制继电器模块点灯总结 原文链接&#xff1a;https://www.yourcee.com/newsinfo/2925664.html 继电器的简介 继电器&#xff08;英文名称&#xff1a;relay&…

STM32f1之简单控制继电器模块(附源码)

目录 前言 一、继电器的使用&#xff08;重要&#xff01;&#xff01;&#xff01;&#xff09; 二、写个代码检验 三、源码--百度云 前言 第一个粉丝会是谁呢&#xff1f;期待ing 相信很多志同道合的小伙伴们已经找到了学习STM32的好途经&#xff08;灵光一闪刷到我的博客…

【树莓派C语言开发】实验04:继电器模块

文章目录 前言1.实验器材2.实验原理2.1继电器模块2.2继电器工作 3.电路图和接线图3.1电路图3.2接线图 4.代码示例4.1部分函数解释4.1.1pinMode4.1.2digitalWrite 4.2Geany编译器运行代码4.3Linux-gcc编译器 结语 前言 学习树莓派的时候经常要查找前辈们留下的资料 但我发现&am…

Ardunio开发实例-使用继电器模块控制家用灯泡

使用继电器模块控制家用灯泡 继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化…

Arduino开发之如何连接继电器模块?

文章目录 0.引言1.继电器模块和交流同步电机说明2.编写代码 0.引言 继电器的作用是扩大控制范围&#xff1a;例如&#xff0c;多触点继电器控制信号达到某一定值时&#xff0c;可以按触点组的不同形式&#xff0c;同时换接、开断、接通多路电路。可以放大控制效果&#xff0c;例…

【STM32-扩展模块】继电器模块Relay

前言&#xff1a; 继电器模块工作电压5V&#xff0c;吸合电流约70mA每路&#xff0c;带继电器状态指示灯&#xff1b;I/O信号输入直接与单片机IO口或数字电路连接&#xff0c;输入高电平继电器吸合&#xff0c;输入低电平继电器释放&#xff1b; 全贴片元件&#xff0c;最合理驱…

Arduino笔记-继电器模块的使用

这里以一个小实验为例&#xff0c;当串口输入a时亮灯&#xff1a; 当输入b的时候&#xff0c;灭灯&#xff0c;这里主要是使用了继电器 后台打印如下&#xff1a; 这里说下继电器的理论&#xff1a; ab之间是线圈&#xff0c;只要在ab两端上加上一定的电压&#xff0c;线圈中就…

21、ZigBee 开发教程之基础篇—继电器模块

文章目录 1、实验目的2、实验设备3、实验相关电路图4、实验相关寄存器5、源码分析6、实验现象1、实验目的 1)通过实验掌握 CC2530 芯片 GPIO 的配置方法 2)掌握 HC-SR501 人体红外传感器的使用 2、实验设备 硬件:1、PC机一台;2、ZigBee(CC2530)(底板、核心板、仿真器、…

raspberryPi_继电器模块(relay)+风扇模块(fan)连接原理图/硬件调试

文章目录 继电器模块型号和样式型号样式1&#xff1a;端口介绍左侧 右侧(指示灯侧)双侧图 样式2&#xff1a;DC/IN 引脚介绍 继电器的使用和接入风扇的可用性调试 ⛔注意测试代码触发电平code (new)code&#xff08;old) 测试继电器模块可用性可选材料Fritzing 接线图 关于继电…