爬取猫眼电影,进行分析

article/2025/11/10 5:14:59

目录

  • 简介
  • 环境要求
  • 数据爬取
    • 爬取目标
    • 电影详情页
    • 反爬虫破解
    • 数据存储
    • 服务器搭建
    • 电影推荐
  • 数据展示
    • 电影推荐
    • 电影评分
    • 电影票房
    • 电影类型词云

简介

这次是一次数据库实验,实验要求是了解最新的数据库,并使用!做一个简单案例使用。根据实际需要就采用了MongoDB 数据库,因为它是非关系数据库。使用比较简单,而且容易上手。案例是想爬取猫眼2018年上映的所有电影,并进行简单分析。然后进行电影推荐,可以输入一个电影,然后该系统采用推荐算法,推荐5部电影评分类型的电影。写下该博客就是为了记录。以免以后忘记!

环境要求

  1. 该项目使用了一个比较流行的服务器框架,Nodejs 的Express 服务器搭建框架。
  2. 也使用了简单的爬虫。基于python3.0 、java8.0
  3. 数据库:MongoDB4.0, Npm3.10 模块管理。

数据爬取

项目的第一步,就是准备相关的数据。

爬取目标

该项目爬取的电影数据,是2018年猫眼电影上映的电影数据。

电影数据
分析该页html 结构,我们的目标就是获取索引页里所有电影链接,已经评分信息。

电影详情页

对详情页的信息进行获取,主要获取内容是电影名称、类型、国家、时长、上映时间、评分、评分人数以及累计票房。
电影详情页

反爬虫破解

通过 BeautifulSoup 获取数据的时候,我们发现一些数据很容易就可以获得,但是电影评分,评分人数,累计票房这些数据,施加了反爬。

数据反爬
通过分析文字反爬中的js 事件,我们可以看出,只要刷新页面,三处文字编码就会改变,无法直接匹配信息。 所以需要下载文字文件,对其进行双匹配。然后将woff 格式转换为xml 格式。以便在 pycharm 中查看详细信息。

文字反爬破解

文字反爬破解后,接下来的工作就简单了,获取自己需要的数据,构造请求头、获取电影详情页链接,获取电影详情页的信息。

数据存储

我们要把获取的数据保存到数据库中,我们使用的是MongoDB 数据库,它是专为可拓展性、高性能、高可用性而设计的数据库,它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB 能够提供高性能的数据读写操作。

数据库创建

数据库的ER图
在创建用户集合,电影集合的时候,还需要添加一个两者关系的集合。
用户集合:

数据库设计
字段说明
关系集合字段

服务器搭建

为了让用户能够通过浏览器查看数据,该系统搭建了一个服务器,将用户浏览器发来的查询请求进行处理,谈话服务器从数据库中读取数据,将数据返回给前端,前端将服务器返回的数据进行可视化处理。
服务器的搭建该系统采用了 Express 服务器框架,它是一种保持最低程度规模的灵活 NodeJs web 应用程序框架,为web 和移动应用程序提供一组强大的功能。

服务器查询数据库

服务器解析数据

电影推荐

根据用户输入的电影名称通过KNN 推荐算法,根据电影类型推荐评分前5的电影。

电影推荐
用户输入电影名称,向服务器发送电影推荐请求,服务器调用脚本执行机器学习的KNN推荐算法,该算法根据用户输入电影的类型进行分类,然后向用户推荐评分最高的5部电影。

数据展示

电影推荐

电影推荐

电影评分

电影评分

电影票房

在这里插入图片描述

电影类型词云

电影类型词云
源码已上传到GitHub上 https://github.com/AdminWangYe/Movie


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

相关文章

Python—猫眼电影票房爬虫实战 轻松弄懂字体反爬!

目标 1.爬取猫眼票房信息 2.将信息保存起来(MySQL、Redis、MongoDB或者Excel等等),我们保存的是Excel 爬取网址 https://piaofang.maoyan.com/?vernormal&isid_key2d9aacd2f26d4d0dba63 分析 1.打开chrome,输入网址我们看到的效果如下 2.我们…

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

基于Python猫眼票房TOP100电影数据抓取 使用requests库抓取数据BeatifulSoup解析URL,将数据存入csv文件处理数据,生成图表 本次爬取数据使用Python语言在jupyter notebook上爬取的,并使用数据生成了一些图表。 使用requests库抓取数据 本段…

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

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

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

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

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

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

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

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

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

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

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

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

继电器模块典型电路图

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

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

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

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

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

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

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

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

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

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

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

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

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

【树莓派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.引言 继电器的作用是扩大控制范围:例如,多触点继电器控制信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。可以放大控制效果,例…

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

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

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

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