第1章 绪论
1.1 研究背景及意义
进入21世纪,特别是第二个十年,世界互联网取得了惊人的快速发展。根据分析师玛丽·米克尔 (Mary Mikel) 2016年发布的一份互联网趋势报告,到2016年年中,全球互联网用户超过30亿,约占全球总人口的40%,中国超过6.9亿互联网用户维持了多年来全球最大的互联网用户市场。互联网的快速发展,同时互联网产生的数据量也随着互联网用户的不断涌入而产生了爆炸性的增长,世界进入了"大数据"时代[1][2]。欧洲最大的电子优惠券应用提供商Vouchercloud在2015年发布的一份报告显示,每天在互联网上生成的数据高达2.5万亿字节(五分之一字节),这些数据可以充满超过1亿张蓝光光盘25GB容量)。因此,如何在互联网上查询海量信息中的有价值数据,成为一个需要解决的问题。
在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了,人们对信息的获取逐渐被网络所取代。目前,人们大多通过搜索引擎获得有用的信息,因此,搜索引擎技术的发展将直接影响人们获得所需信息的速度和质量。
作为搜索引擎技术核心元素之一,网络爬虫[1][2][3]源于上个世纪90年代的Google等搜索引擎,爬虫用于抓取互联网上的Web页面,再由搜索引擎进行索引和存储,从而为我们提供检索服务。网络爬虫位于搜索引擎的后台,并未直接与用户接触,属于幕后技术,因此在较长的时间内并未被广大开发人员所关注。
2005年以来,人们对网络爬虫技术的关注度快速上升。其中,很大的推动力来自于各种个人、中小型爬虫。爬虫是一个实践性很强的技术活,互联网上爬虫数量的增长速度剧增。爬虫技术历经20多年的发展,技术已日趋多样[4][5][6][7]。
1.2 国内外现状
随着网络信息资源的指数化增长和网络信息资源的动态变化,传统搜索引擎提供的信息检索服务已不能满足人们对个性化服务日益增长的需求,正面临着巨大的挑战。以什么样的网络接入策略,提高搜索效率,已成为近年来专业搜索引擎网络爬虫研究的主要问题之一[9][10][11]。
网络爬虫是搜索引擎的重要组成部分,目前比较流行的搜索引擎有百度、谷歌、雅虎、必应等,可以说没有网络爬虫的存在,就可能没有搜索引擎的存在,出于商业保密的考虑,各种搜索引擎使用的爬虫系统的技术内部人员一般不公开,现有文献仅限于摘要介绍。在很大程度上,Web搜索引擎、数字图书馆和其他Web应用都依赖于网络爬虫获取的HTML文档信息。例如为了提供多种搜索引擎服务,谷歌、雅虎和MSN的爬虫定期遍历数十亿网页,网络购物智能代理通过价格比较未用户推荐价格优惠的产品[12][13]。
本文通过爬取影视数据通过分析让为用户观影时提供决策支持。
1.3 论文结构
本文旨在通过开发一套电影数据分析系统,提供基于数据分析的决策支持。在第一章中,介绍了电影市场的现状以及电影数据分析对于电影产业的重要性,并对国内外现状进行了总结。第二章主要介绍了开发该系统所用到的技术和运行环境,包括开发环境搭建和各种第三方库的应用。第三章通过可行性分析和系统需求分析来明确该系统的设计目标和技术要求,包括易用性、可移植性和系统观感需求等。第四章介绍了该系统的实现过程和各项功能的测试情况,包括数据爬取、数据分析、数据存储和数据可视化等。最后,在第五章中对本研究进行了总结,并展望了未来该系统的发展方向。
第2章 开发技术与运行环境
2.1 开发环境搭建
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python语言是人工智能和大数据的标准语言,随着云计算、大数据、物联网、人工智能、区块链等技术被广泛应用于各行各业。自20世纪90年代Python语言公开发布以来,由于其语法简洁、类库丰富,适用于快速开发活动,已经成为当下较为流行的一种脚本语言。Python语言具有强大的数据分析功能,可以应用到网站开发、图像处理、数据统计和可视化表达等多个领域。
1. 从官网下载python3安装包,官网:Welcome to Python.org。
2. 安装python,并配置环境变量。
3. 从官网下载pycharm安装包,官网:http://www.jetbrains.com/,安装pycharm。
4. 将pycharm关联python,并配置国内镜像源https://pypi.tuna.tsinghua.edu.cn/simple。
2.2 第三方库
2.2.1 关于数据爬取的第三方库
1. requests
requests是Python编程语言中一个用于发送HTTP请求的第三方库,它可以让程序通过HTTP协议向远程服务器发送请求,获取数据并对其进行处理。requests库提供了一个简单且易于使用的API,使得HTTP请求和响应的处理变得非常容易。
使用requests库,你可以很方便地发送HTTP请求,例如GET、POST、PUT、DELETE等请求方法,还可以添加HTTP头部、查询字符串、cookies等内容。requests库还支持HTTPS、身份验证、代理和会话管理等功能。
2. lxml
lxml是一个Python库,用于处理XML和HTML文档。它基于libxml2和libxslt库,提供了一组简单易用的API来解析、生成、修改XML和HTML文档。
lxml可以快速解析和处理大型XML和HTML文档。支持XPath和CSS选择器,可以快速查找和遍历文档中的元素。支持XML和HTML序列化,可以将文档保存为字符串或文件。支持XSLT转换,可以将一个XML文档转换为另一个XML文档或HTML文档。支持DTD和XML Schema验证,可以验证XML文档的合法性。支持命名空间,可以处理具有复杂命名空间的XML文档。
使用lxml可以方便地处理XML和HTML文档,例如提取网页内容、生成XML配置文件、处理XML数据等。同时,由于lxml底层使用C语言实现,因此具有很高的性能和可靠性。
2.2.2 关于数据分析的第三方库
1. jieba
jieba库是一个基于Python的中文分词库,它采用了基于前缀词典实现的分词算法,可以对中文文本进行分词,并输出分词结果。
jieba库的特点是分词速度较快,准确度较高,且具有良好的可定制性。它支持三种分词模式:精确模式、全模式和搜索引擎模式,可以根据不同的需求选择合适的模式进行分词。另外,jieba库还支持自定义词典和关键词提取功能。
使用jieba库可以方便地对中文文本进行处理,如中文分词、关键词提取、文本分类、情感分析等任务。同时,由于它是基于Python实现的开源库,因此可以方便地集成到各种Python项目中。
2. pandas
pandas是一个基于Python的数据处理库,提供了高性能、易用的数据结构和数据分析工具。它最初由AQR Capital Management在金融行业中开发,现在已成为广泛使用的开源库。
pandas库的主要数据结构是Series和DataFrame。Series是一维数组对象,类似于Python中的列表或数组,但它有标签(label),可以使用标签来访问数据,而不仅仅是使用整数索引。DataFrame则是二维的表格型数据结构,可以看做是由多个Series组成的。
pandas库提供了丰富的数据操作和分析功能,包括数据清洗、转换、切片、过滤、合并、聚合、排序、分组、透视表等。它还支持从多种文件格式(如CSV、Excel、SQL、JSON等)读取数据,并可以将数据导出到多种格式。
3. Snownlp
Snownlp是一个基于Python的中文自然语言处理工具包,它可以进行中文分词、词性标注、情感分析、文本分类、关键词提取、摘要生成等多项NLP任务。Snownlp采用了一些传统的机器学习算法和统计模型,例如隐马尔可夫模型(HMM)、条件随机场(CRF)、朴素贝叶斯分类器等,同时还采用了一些深度学习算法,例如卷积神经网络(CNN)和循环神经网络(RNN)。
Snownlp提供了一些简单易用的API,可以方便地进行文本处理,例如:
中文分词:使用snownlp.Segment()函数即可将一段中文文本分割成词语。
词性标注:使用snownlp.Tag()函数可以为文本中的每个词语标注其词性。
情感分析:使用snownlp.Sentiment()函数可以对一段中文文本进行情感分析,判断其中表达的情感是正面的还是负面的。
文本分类:使用snownlp.SnowNLP()函数可以对文本进行分类,例如将一篇新闻文章分类为体育、娱乐、科技等不同的主题。
Snownlp具有较高的准确性和稳定性,同时也支持用户自定义词典和训练模型,可以根据具体的应用场景进行灵活的配置和调整。
2.2.3关于数据存储的第三方库
PyMySQL是 Python 编程语言的一个第三方模块,它提供了对 MySQL 数据库的访问,允许 Python 开发人员通过 Python 代码连接、查询、修改和管理 MySQL 数据库。
PyMySQL 支持多种 MySQL 数据库操作,包括创建和删除数据库、创建和删除表格、插入、更新和删除数据、以及执行 SQL 查询语句等。
使用 PyMySQL 可以方便地在 Python 中访问 MySQL 数据库,进行数据操作。PyMySQL 还具有易于使用、性能良好、兼容性强等优点,是 Python 中访问 MySQL 数据库的首选库之一。
2.2.4关于数据可视化的第三方库
1. EChart
ECharts(Enterprise Charts)是一个基于 JavaScript 的开源可视化库,由百度前端团队开发并维护。它提供了一套简单、直观、丰富的图表组件,支持多种数据格式的展现,包括线性图、柱状图、饼图、散点图、雷达图、热力图等等。ECharts不仅支持图表的基本绘制功能,还支持图表的交互、动画效果、地图展示等功能,可以满足大多数数据可视化的需求。
ECharts具有易于使用、灵活性强、可定制性高等特点,可以通过简单的 JavaScript 代码创建出美观、实用的数据可视化图表,并可与其他前端框架(如Vue、React等)和后端语言(如Java、PHP等)配合使用。同时,ECharts还提供了完善的文档、示例和社区支持,方便开发者学习和使用。
2. WorldCloud
WordCloud(词云)是一种可视化文本数据的方法,它通过将文本中的单词按照词频大小在图像上呈现不同大小的字体来展示文本数据的重要性和关键词。在词云图中,出现频率较高的单词会被放大显示,而出现频率较低的单词则会被缩小甚至隐藏。词云图的目的是让人们能够快速理解文本数据的主题和内容,并从中发现一些潜在的信息和关系。
词云图在数据可视化领域广泛应用于文本分析、舆情监测、品牌管理、社交网络分析等方面。通过词云图,我们可以直观地了解文本数据的热点、趋势和特点,从而更好地进行数据分析和决策。
第3章 需求分析
3.1 可行性分析
3.1.1技术可行性分析
本系统开发选择python技术,python技术是一个完全面向对象的语言,为开发者提供了丰富的类库,大大减少了使用windows编程的难度,减少开发人员在设计算法上的难度,作为python技术开发 pycharmo更是一个必不可少的角色,它友好的界面,以及强大的功能,给程序开发人员带来了很多方便,加上环境简单,转移方便,无疑使此系统最佳的选择。
3.1.2 经济可行性分析
Python是一款开源免费的脚本语言,Pycharm开发环境也有免费的社区版,而且excel也是一款优秀的免费的数据存储软件。因此开发成本几乎可以忽略不计,因此经济可行性非常高。
3.1.3 操作可行性分析
本系统的开发符合国家法律进行,也不会触犯到任何人,任何集体的法律权益。只要开发过程中遵纪守法就完全符合法律要求,并且使用计算机的用户都会具有一定的计算机基础,并且本系统操作方法简单,分析的均为计算机相关方面的人才,所以用户绝对能够熟练使用该系统,并且普通会使用计算机的人群也能使用。因此社会可行性很高。
3.2 系统需求分析
随着电影产业的快速发展,电影票房数据的分析和可视化已经成为了电影行业重要的研究方向。基于Python的电影票房数据爬取与可视化系统可以帮助电影从业者更好地了解电影市场的发展趋势和受众口味,从而做出更具针对性的决策。
本系统的功能需求分析如下:
1. 数据爬取功能
该系统需要通过Python爬虫技术从电影票房网站上抓取最新的电影票房数据,并将数据存入MySQL数据库中。在爬取数据的过程中,需要考虑数据的准确性和完整性。
2. 数据清洗与处理功能
电影票房数据中可能存在重复记录、缺失数据、错误数据等问题,因此需要使用pandas库对数据进行清洗和处理,保证数据的准确性和完整性。
3. 自然语言处理功能
电影票房数据中包含了电影名称、演员、导演等信息,需要进行自然语言处理,使用snownlp库对电影评价、评论等进行情感分析,从而更好地了解电影受众的口味和评价。
4. 数据可视化功能
本系统需要将爬取、处理后的数据进行可视化展示,以图表、折线图、柱状图等形式呈现出电影票房数据的趋势和规律。同时,本系统需要支持用户对数据进行筛选和排序,以便用户更好地了解电影市场的发展趋势和受众口味。
5. 用户管理功能
本系统需要支持用户登录和注册功能,以便用户可以保存和分享自己的数据分析结果。同时,该系统需要支持用户管理功能,包括用户管理、数据备份等。
6. 系统性能优化功能
该系统需要考虑数据量庞大的情况下,系统的性能问题。因此,需要对系统进行性能优化,包括数据索引、缓存等。
7. 安全性保障功能
该系统需要考虑数据的安全性问题,包括数据备份等,以保证数据的安全性和完整性。
该系统使用Python Flask部署,MySQL存数据,pandas库清洗数据,snownlp进行自然语言处理,layui前端展示。这些技术的使用使得系统具有高效、准确、安全、易用等优点,为电影行业从业者提供了重要的数据分析和决策支持。
3.2.1易用性需求
本系统拥有多种类型的用户,且用户之间的计算机水平各不相同。对于系统的执行操作,以及对分析结果的理解,系统应针对不同用户进行设计。为让本系统在更大限度上满足大多数用户的需求,系统应本着“以用户为中心”的原则进行设计。需要设计简洁清晰的操作界面,对不同的数据分析结果表现需要以多种方式进行描述以便用户理解,适当提供操作的提示功能通过多种方式帮助用户进行操作等。
3.2.2可移值性需求
良好的可移植性可以提高系统的生命周期。为满足系统在不同系统环境下的稳定运行,系统程序的编写应使用具有良好的可移植的高级语言编写。
3.3.3系统观感需求
系统采用了Web页面,整体风格美观简洁,操作简单易懂,用户使用方便。在系统设计中,需要考虑用户的系统感官需求,包括以下方面:
1. 用户界面的美观性:系统需要具有美观、简洁、直观的用户界面,方便用户使用和操作,同时提高用户的使用体验。
2. 数据可视化的直观性:系统需要将采集到的电影票房数据进行可视化展示,对数据进行直观、清晰、易懂的呈现,方便用户进行数据分析和决策。
3. 数据的实时性和准确性:系统需要及时、准确地采集和处理电影票房数据,确保数据的实时性和准确性,为用户提供可靠的数据支持。
4. 系统的稳定性和可靠性:系统需要具有稳定、可靠的性能,确保系统的正常运行和数据的安全性,同时提高用户对系统的信任。
第4章 系统设计
4.1 系统功能模块设计
本爬虫系统分为数据爬取模块(爬取豆瓣TOP250排行榜以及电影详细数据)、数据分析模块(数据预处理及分析)、数据可视化模块(词云展示以及绘图展示),如图4.1系统结构图所示。
图4.1 系统结构图
用Python的Scrapy框架编写爬虫程序抓取了Top250排行榜的影片榜单信息,爬取电影的短评、评分、评价数量等数据,并结合Python的多个库(Pandas、Numpy、Matplotlib),使用Numpy系统存储和处理大型数据,中文Jieba分词工具进行爬取数据的分词文本处理,wordcloud库处理数据关键词,最终通过词云图、网页动态图展示观众情感倾向和影片评分统计等信息。系统结构如图4.1所示,对应系统总体流程图如图4.2所示。
图4.2 系统总体流程图
4.1.1 数据爬取模块功能设计
数据爬取模块主要是使用requests爬虫爬豆瓣电影网站上获取电影评论数据并保存到本地文件中。它通过读取包含电影信息的本地文件,遍历每一部电影,循环遍历三个等级的评论,构造采集的url并发送网络请求获取评论数据。然后,解析返回的HTML页面,获取每一条评论的作者、评分、评论时间、评论内容等信息,并将其保存为字典格式。最后,将每一条评论的信息以JSON格式保存到txt本地文件中。具体如图4-3数据爬取模块流程图所示。
图4-3数据爬取模块流程图
4.1.2 数据分析模块功能设计
数据分析模块主要是使用pandas库将获取的电影数据提取清洗,包括去除空值、数据类型转换,将数据存为Excel文件和MySQL数据库中。此外还需要对文本数据进行提取转化,计算关键词的权重值。首先从数据库中读取数据,将其中的文本内容进行合并,并作为输入传入LocalTextRank类中。通过分词、构建节点以及构建矩阵等操作,最终使用TextRank算法计算出每个词的权重值,并将结果存储在Excel文件中。具体如图4-4数据分析模块流程图所示。
图4-4数据分析模块流程图
4.1.3 数据可视化模块功能设计
数据分析模块主要是运用Flask应用的路由函数,接收GET请求并打印请求参数,从MySQL数据库中查询关键词与搜索参数匹配的数据记录,其中的电影数据直接通过fetchone方法,转化成JSON格式,通过get或者post方法传递到layui前端页面,根据flask的route选择html页面,传递的数据将通过echart渲染成不同的可视化效果。同理对每个记录进行情感分析、关键词提取和词性标注,并使用这些信息生成HTML代码。最后返回生成的HTML代码响应给请求方。具体如图4-5数据可视化模块流程图所示。
图4-5数据可视化模块流程图
4.2数据库设计
4.2.1概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。用户实体图如下图4-7
图4-7用户实体图
电影信息实体图如下图4-8
图4-8电影信息实体图
评论内容实体图如下图4-9
图4-9评论内容实体图
4.2.2物理模型设计
表4-1:用户表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
int |
0 |
用户ID |
主键 |
|
username |
varchar |
255 |
用户名 |
||
password |
varchar |
255 |
密码 |
||
text |
0 |
邮箱 |
|||
content |
text |
0 |
简介 |
||
address |
text |
0 |
地址 |
||
phone |
text |
0 |
电话号码 |
表4-2:电影信息表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
href |
varchar |
200 |
链接 |
||
title |
varchar |
100 |
电影名 |
||
directedBy |
varchar |
100 |
导演 |
||
actor |
text |
0 |
演员 |
||
genre |
varchar |
100 |
|||
country |
varchar |
100 |
国家地区 |
||
language |
varchar |
100 |
语言 |
||
imbd |
varchar |
100 |
|||
initialReleaseDate |
varchar |
100 |
|||
runtime |
varchar |
100 |
上映时间 |
||
average |
varchar |
100 |
评分 |
||
votes |
varchar |
100 |
|||
summary |
text |
0 |
|||
duan_comment |
varchar |
100 |
短评 |
||
chang_comment |
varchar |
100 |
长评 |
表4-3:评论内容表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
title |
varchar |
100 |
内容 |
||
userful |
varchar |
100 |
|||
author |
varchar |
100 |
用户 |
||
rate |
varchar |
100 |
评分 |
||
time |
varchar |
100 |
时间 |
||
short |
text |
0 |
第5章 系统实现与功能测试
5.1 电影数据爬取的实现
电影数据爬取主要是从豆瓣电影网站上获取电影评论数据并保存到本地文件中。它通过读取包含电影信息的本地文件,遍历每一部电影,循环遍历三个等级的评论,构造采集的url并发送网络请求,获取评论数据。然后,解析返回的HTML页面,获取每一条评论的作者、评分、评论时间、评论内容等信息,并将其保存为字典格式。最后,将每一条评论的信息以JSON格式保存到本地文件中,每一次循环追加写入文件。整个函数的作用是在指定的电影页面中获取不同等级评论的数据,以便后续的分析和处理。核心代码如图4.1所示:
图5.1 获取电影评论
接着我们通过网络请求获取url页面并使用XPath解析HTML页面的元素,将解析的电影信息以字典形式存储在字典中,包括电影的标题、导演、演员、类别、国家、语言、imbd、上映日期、运行时长、平均评分、投票数、摘要等内容,还包括短评和影评数量的解析。最后返回该电影的解析结果。核心代码如图5.2所示:
图5.2 获取电影信息
5.2 电影数据分析的实现
对电影数据进行分析的一个很重要的模块是对其文本进行关键词提取,并计算关键词的权重值。其中,首先从数据库中读取数据,将其中的文本内容进行合并,并作为输入传入LocalTextRank类中。在该类中,通过分词、构建节点以及构建矩阵等操作,最终使用TextRank算法计算出每个词的权重值,并将其存储在字典中。最后,将每个词及其相应的权重值输出到控制台,并将结果存储在Excel文件中。核心代码如图5.3所示:
图5.3 TextRank
5.3 电影数据存储的实现
对于已获取到的电影数据,合适的清洗和存储至关重要。我们从一个名为"temp.txt"的文件中读取采集的电影信息,并将其转换为一个DataFrame对象,清洗并去除重复数据,最后将清洗后的数据导出为Excel文件,以及通过SQL语句将数据导入数据库。具体来说,该代码会读取"temp.txt"文件中的内容并将其转换为一个列表,然后使用pandas库将该列表转换为DataFrame对象并输出该对象的前10行和描述性统计信息。接着,该代码会对DataFrame对象中的"runtime"列进行清洗,并使用drop_duplicates()函数去重。然后,该代码会将清洗后的数据导出为一个名为"org_data.xlsx"的Excel文件。最后,该代码会通过for循环遍历DataFrame对象,并将每一行的数据插入到一个名为"movieinfo"的数据库表中。其中,每一行的数据都会通过一个insert语句插入到该表中。如果插入出错,则会输出错误信息。核心代码如图5.4所示:
图5.4 电影数据存储
5.4 电影数据可视化的实现
5.4.1 Web服务端
我们运用Flask应用的路由函数,接收GET请求并打印请求参数,从MySQL数据库中查询关键词与搜索参数匹配的数据记录,对这些数据记录进行排序并取前20个,然后对每个记录进行情感分析、关键词提取和词性标注,并使用这些信息生成HTML代码。最后返回生成的HTML代码响应给请求方。核心代码如图5.5所示:
图5.5 WEB服务端
5.4.1 登陆界面
本文实现的电影可视化登陆界面如图5.6所示:
图5.6 登陆界面
5.4.2 用户管理中心
用户使用账号和密码登录可视化系统后,即可进入用户管理中心,既可以在个人中心进行个人信息的填写和修改,也可以在密码修改模块进行密码的更新,分别如图5.7和图5.8所示:
图5.7 个人中心
图5.8 密码修改
5.4.3 电影数据看板
我们可以切换至电影数据看板模块,其下有看板概况、电影概况和短评概况三个子页面,分别如图5.9-5.11所示:
图5.9 看板概况
图5.10 电影概况
图5.11 短评概况
5.4.4 电影属性分析
我们还可以切换至电影属性分析,在这里有电影分类分析、电影运行时长分析、电影国家分析、电影语种分析以及高频演员分析,分别如图5.12-5.16所示:
图5.12 电影类型分析
图5.13 运行时长分析
图5.14 电影国家分析
图5.15 电影语种分析
图5.16 高频演员分析
5.4.5 电影评论分析
电影评论是对电影好坏评价的重要依据,对其进行分类和分析是我们的主要内容,我们通过对电影好评、中评和差评进行分类和可视化呈现,输出了电影评论整体看板、好评分析、中评分析和差评分析这四种结论,分别如图5.17-5.20所示:
图5.17 电影评论整体看板
图5.18 好评分析
图5.19 中评分析
图5.20差评分析
5.4.6 电影特征词模型
在本文中,我们还对电影特征词进行了建模,这样我们对所想要了解的电影的特征词就可以一目了然,如图5.21所示:
图5.21特征词模型
5.5 系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为员工提供一个良好的体验和安全服务。而通过发现错误或潜在的问题,将有助于提升竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。
5.5.1 测试内容
对于基于python的电影票房数据爬取与可视化系统,需要进行系统功能测试,包括以下方面:
1. 用户注册与登录功能测试:测试用户能否成功注册账号并登录系统。
2. 电影类型分析测试:测试系统能否准确展示电影分类、可视化等信息
3. 运行时长分析测试:测试运行时长分析是否能够准确显示可视化图表。
4. 电影国家分析测试:测试用户是否能够正确显示电影国家分析可视化图表。
5. 电影语种分析测试:测试用户是否能够正常显示电影语种分析可视化图表。
6. 特征模型测试:测试管理员是否能够正确TextRank及其权重。
5.5.2 测试结果
系统功能测试的目的是保证系统的稳定性和信息准确性,提高系统的用户体验和推荐效果,从而提高系统的整体质量。通过系统测试结果发现,本系统各项功能基本满足设计要求。
第6章 结论与展望
本文实现了一套电影数据分析系统的开发,并提供基于数据分析的决策支持。我们调研了电影市场的现状以及数据分析对电影产业的重要性,并对国内外现状进行了总结。接着,我们介绍了系统开发所需的技术和运行环境,包括开发环境的搭建和各种第三方库的应用。我们通过可行性分析和系统需求分析明确了系统设计目标和技术要求,包括易用性、可移植性和系统观感需求等。最后,我们提供了该系统的实现过程和各项功能的测试情况,包括数据爬取、数据分析、数据存储和数据可视化等。
在本次毕业设计的过程中,首先需要解决的问题就是安装Python和Pycharm,并完成基本配置。在成功安装Pycharm后,经过老师和同学们的耐心指导和帮助,我们逐渐掌握了网络爬虫的实现步骤和注意事项。通过初步的爬虫开发,我们成功采集到了豆瓣电影Top250网站的电影基本数据和影评,并完成了对数据的绘图和影评词云化。尽管仍有许多细节需要完善,但我们愿意持续不断地改进和优化。
这次毕业设计让我们学习了很多关于爬虫的理论和实践知识,我们甚至独立实现了整个分布式爬虫。这次经历不仅丰富了我们的学识和见解,也大大提高了我们的动手能力和解决问题的能力。相信这些技能和能力将会对我们未来的学习和生活产生重要的帮助和支持。