爬取猫眼电影,进行分析

目录

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

简介

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

环境要求

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

数据爬取

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

爬取目标

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

爬取猫眼电影,进行分析_第1张图片
分析该页html 结构,我们的目标就是获取索引页里所有电影链接,已经评分信息。

电影详情页

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

反爬虫破解

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

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

爬取猫眼电影,进行分析_第4张图片

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

数据存储

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

爬取猫眼电影,进行分析_第5张图片

爬取猫眼电影,进行分析_第6张图片
在创建用户集合,电影集合的时候,还需要添加一个两者关系的集合。
用户集合:

爬取猫眼电影,进行分析_第7张图片
爬取猫眼电影,进行分析_第8张图片
爬取猫眼电影,进行分析_第9张图片

服务器搭建

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

爬取猫眼电影,进行分析_第10张图片

爬取猫眼电影,进行分析_第11张图片

电影推荐

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

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

数据展示

电影推荐

爬取猫眼电影,进行分析_第13张图片

电影评分

爬取猫眼电影,进行分析_第14张图片

电影票房

爬取猫眼电影,进行分析_第15张图片

电影类型词云

爬取猫眼电影,进行分析_第16张图片
源码已上传到GitHub上 https://github.com/AdminWangYe/Movie

你可能感兴趣的:(爬虫,电影推荐,MongoDB)