一个仿豆瓣的电影推送平台(一)| 项目总览
缘起
电影,一种综合艺术,用强灯光把拍摄的形象连续放映在银幕上,看起来像实在活动的形象[1] 。意大利诗人、电影先驱者乔托·卡努杜在世界电影史上第一次宣称电影是一种表演艺术,并将电影定义为除建筑、音乐、绘画、雕塑、诗和舞蹈以外的“第七艺术”[2]。
而数据库[3]是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库在流媒体中也有这广泛的应用,像数据库在对于像豆瓣电影这种用户生产内容 (UGC, User-generated Conten)的平台,需要利用数据库来存储电影相关的海量信息以及用户在创作过程中生产的信息。
作为一名电影爱好者,十分想通过数据库来复现并二次创作这一系统,实现对主流电影与演员信息的爬取、录入、检索、评价以及用户生产信息的维护。本系列文章记录了一次电影推送平台的实现,旨在实践数据库自顶向下地进行需求分析以及自底向上的进行概念结构设计的过程,并希望能开拓视野,探索并学习主流电影数据库的设计方法。
可行性分析
技术可行性
本系统数据库后端使用sqlserver 数据库实现,其强大稳定快捷的系统、丰富的帮助文档以及对多种编程语言的支持无不加速了开发的速度并降低了开发难度。
为了是数据更加真实有效,爬取了豆瓣电影top250的电影及演员数据,分析发现所需内容分布在静态网页上,采用高效的scrapy爬虫框架来获取数据,并设置合适的并发请求次数以及ip代理来减少对服务器的压力以及应对反爬虫机制。
通过查询大量资料,网络上并没有十分开放的影视数据库的资料及代码可供参考,本项目只查阅了部分国外IMDB相关的数据库资料来试图理解、复现并改进该系统。
操作可行性
得益于数据库概论课程打下的良好基础,对于数据库的设计已经摆脱了纯经验摸索的方法,有了科学的视角以及有效的方法论。该系统在设计过程中严格遵循数据库的设计方法,通过前期的需求分析,画出数据流图,建立数据字典,再通过概念结构设计,将其转化为关系模式,进而得到系统的物理结构,同时在安全性和完整性等方面不断修正和改进,直到形成一个完善的可行性系统。真实而有效的数据,简洁美观的界面,方便实用的查询与维护功能共同组成了该系统
经济价值可行性
本项目设计之初并无盈利的考虑,查阅豆瓣盈利模式后发现,可以在该数据库的基础上建立对当前院线电影的支持,对热映电影推荐附近的电影院信息甚至打通出行软件业务。该系统甚至可以结合各大流媒体播放平台进行点播,建立商业合作关系。还可在此基础上开发推荐算法并通过吸引广告商来盈利。研究发现改系统具有部分商业潜力。
系统需求分析
为了减少多平台切换的繁琐,欲将豆瓣中电影的分析以及院线中热映电影信息相结合,既能想用户展示院线热门电影又能欣赏优秀电影的分析。实现过程中需要结合数据库知识、前端设计知识、爬虫知识、图遍历算法、电影、票房信息,既可以锻炼到能力又不失趣味性。
本系统主要着眼于电影信息,维护了每部电影丰富的电影信息,同时为了确定编剧、导演、演员,有设立了一个艺人表来储存具体信息。用户的参与也是举足轻重的,建立了用户的基本信息,并着重维护用户收藏的电影、艺人信息,维护了用户浏览过的电影,为后期推荐算法的设计留下数据。为了同步到院线电影,获取了最新电影信息并设置了每部电影的最长公映期,超过天数自动下架。此外,为了保证数据的真实性、有效性和实时性,我们需要采用爬虫从豆瓣获取电影信息以及从猫眼获取电影票房信息。
一个仿豆瓣的电影推送平台(一)| 项目总览


