温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
Python
爬虫
电影
数据
抓取
可视化
设计
马宇洁
数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering229伴随着电影产业的不断发展,网站上的影视和影评资源也越来越丰富。为了给用户和电影产业的决策者提供判断参考,关于电影评论数据的可视化设计得到了广泛的关注1,2。但是如何从海量的信息中获取所需的信息和资源成为了一个大问题。网络爬虫(Web Crawler)是按照一定规则主动抓取网页的程序,能够自动根据指定规则提取相应内容,目前使用率非常高3。使用网络爬虫技术可以爬取相关网页获得更全面的平台数据,这种方法的难点在于处理反爬虫机制4。本文针对热映电影的影评网站数据进行研究,通过网络爬虫技术爬取了国内外四个平台的影评数据,使用 Python 对数据进行可视化设计,包括文本的词云图、评论主题聚类,评论时间与地点的图形化展示。1 数据获取工具本文选取热映电影新蝙蝠侠的影评作为研究对象,爬取的数据来自国内的豆瓣电影和猫眼电影以及国外的烂番茄。本文使用 Python 语言爬取了豆瓣的长评论和短评部分以及猫眼短评部分,使用后裔采集器采集了豆瓣的预评以烂番茄评论部分。使用 Python 单独爬取的原因在于豆瓣官方有反爬取机制,而猫眼的评论抓取网页是一个结构化 json 文档无法用自动化爬虫软件进行抓取。1.1 Python网络爬取Python 爬取数据主要使用了 beautiful soup 工具包。豆瓣网从 2017 年 10 月开始全面禁止爬取数据。在非登录状态下仅仅可以爬取 200 条短评,登录状态下仅可以爬取500条数据。白天一分钟最多可爬40次,晚上60次,超过次数就会封 IP 地址。针对反爬取的问题,本文在请求头、等待时间和cookie 登陆上做了设计。对浏览器请求头部分进行设计,模拟自己是 PC 端电脑浏览器,打开豆瓣的主页,再打开浏览器的开发者工具,输入账号和密码登录豆瓣网。最后使用休眠函数 sleep 定时休眠防止豆瓣识别是机器人操作。1.2 后羿采集器爬取后裔采集器的逻辑比较简单,按照软件自动化爬取流程抓取数据。需要注意的是如果爬取豆瓣影评数据时出现了封 IP 的情况,需要使用多个不同的 IP 混拨,并且访问多个不同排序方式的网址。另外,由于不同排序方式可能存在重合的评论,还需要进行评论去重的操作。2 数据分析2.1 评论时间与地点分析新的电影首映后,国、内外各大影评网站评价便如潮水般涌来。评分的高低固然能体现一部电影的质量与观众缘,但评论量也能体现人们对这部新影片的关注度,本文将把评论量变化与票房变化进行对比,寻找两者之间的联系。以电影新蝙蝠侠为例,其在中国大陆上映时间为 2022 年 3 月 18 日,在美国的上映时间为 2022年 3 月 4 日。观影的高峰期集中在电影上映的第一个月,评论量与票房的主要起伏也集中在第一个月,所以本文只分别对国、内外上映首月评论量的进行分析,并且结合票房进行简单比较。针对所收集的评论使用 Python中的 pandas 库和 pyecharts 库导入数据、绘制图表。基于 Python 爬虫和聚类的热映电影数据抓取与可视化设计马宇洁(北京外国语大学 信息科学技术学院 北京市 100089)摘要:本文使用 Python 网络爬虫技术对热映电影的影评数据进行爬取,包括伪装网络请求、导入网页链接、重复抓取过滤等,完成了对电影新蝙蝠侠在国、内外不同平台影评数据的获取。通过数据可视化技术对获取的影评文本制作了词云,并对评论数变化、评论所在城市分布进行了展示。根据手肘法和TF-IDF矩阵,通过K-means聚类,得到几个分类的主题词,清晰地呈现观众的情感倾向,直观地展示了电影上映后观众对电影的关注程度和观影感受,并能够进一步剖析各个平台评论的特性和内涵及其产生原因。关键词:Python;网络爬虫;影评数据;TF-IDF 矩阵数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering2302.1.1 猫眼评论量从图 1 上半图可见,猫眼评论量从 3 月 19 日开始飙升,到 3 月 20 日达到了高峰,之后整体呈下降趋势。在 3 月 26 日、4 月 3 日和 4 月 10 日又分别有一个相对明显的小高峰。2.1.2 豆瓣评论量从图 1 下半图可见,豆瓣评论量在 3 月 18 日达到了最高值,之后整体呈下降趋势。在 3 月 26 日、4 月 5日又分别有一个相对明显的小高峰。2.1.3 猫眼与豆瓣评论量变化分析猫眼评分是普通观众评分。猫眼作为售票平台,只要买票即可评分,因此相对于豆瓣来说,猫眼评论量与票房更加息息相关,大多观众在购票观影后进行评论。豆瓣是影迷评分网站,而非视频网站或购票平台,豆瓣使用人群中属于影迷性质较强的观众占主要部分。两幅图表都是在前三日有大量评论,之后整体趋于下降趋势,符合电影上映后的观影规律。而最高点的不同主要是以下原因:(1)豆瓣的评论人群中资深影迷观众较多,经过了较长时间对电影的期待,他们刚上映往往就迫切观影评论,所以 3 月 18 日便达到了评论量的最高点。(2)猫眼的评论者都是购票观众,与票房相关高,而购票人数会受到节假日的影响。3 月 19 日为上映后的第一个周六,所以迎来了购票及评论的最高点。此外,猫眼与豆瓣相对明显的小高峰都出现在节假日,也是因为节假日观众更有时间观影和评论。图 1:猫眼与豆瓣上映首月评论量变化折线图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering2312.2 评论所在城市分布收集的猫眼数据还包括了评论用户的所在城市,由此绘制热力图进行观察与分析。由图 2 热力图可见,评论主要集中在广州市、北京市和武汉市。评论主要都在省份城市聚集,向周边城市逐渐减少,与地区经济发展、人民生活息息相关。往往是经济越发达,人们对电影的消费需求越大。2.3 评论文本分析2.3.1 词云在评论中词语出现的次数以及高频词的分布展现出评论者对电影的情感倾向和评价。把分词后的评论列的文本导入 Python 来绘制词云图,运用 wordcloud、PIL和 numpy 库分别导入背景图、生成导出词云图。2.3.2 猫眼词云图在删去“蝙蝠侠”、“电影”这两个占比较大和一些分析价值较低的词如“一个”、“没”、“太”等,生成了图 3 上侧所示的猫眼词云图。其中,“剧情”为占比最大的词语,“不错”和“好看”紧随其后,“喜欢”、“感觉”、“非常”也占较大比重。可见猫眼观众整体对于电影的评价是较好的,其中简单概括性描述自己感受的词语较多。这也源于猫眼评论者大都为购票普通观影大众,不会对电影有过高的鉴赏要求或者对导演、演员有过多评价。2.3.3 豆瓣词云图在图 3 中间所示的豆瓣词云图中,占比最大的仍然是作为主角和电影名的“蝙蝠侠”,但紧随其后的却变为了“英雄”“喜欢”“故事”“谜语”“黑暗”“侦探”“超英”等。豆瓣的评论者更多是此系列电影爱好者或资深影迷,关注的更多是此电影的剧情、风格和角色演员或者是此公司系列电影相关的元素,这与猫眼词云图是完全不一样的。2.3.4 烂番茄词云图烂番茄网站的创始人初衷就是“让人们可以方便地阅读到美国各家媒体的评论”。烂番茄的打分群体严格限定在专业影评人范围里,只有供稿于媒体,或身为影评人协会注册成员的人才有资格打分。由图 3 下侧可见,Batman 在任何网站都占据最大的篇幅。但紧随其后的却变成了导演 Matt Reeves,可见专业影评人更关注分析评价导演在此次电影拍摄中的所作所为,这是与其他影迷观众网站的不同点。3 评论种类聚类模型 TF-IDF(term frequencyinverse document frequency,词频-逆向文件频率)是一种用于信息检索的常用加权技术,用以评估字词对于一个文件集或一个语料库中一份文件的重要程度5。利用 TF-IDF 矩阵可图 3:猫眼、豆瓣和烂番茄词云图图 2:评论分布热力图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering232以运行一系列的聚类算法,来更好地理解影评的隐藏结构。聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程。其中 K-means 聚类算法是最著名的划分聚类算法,给定一个数据点集合和聚类数目 k,然后根据某个距离函数反复把数据分入 k 个聚类中6。3.1 评论聚类实验过程针对若干条文本进行聚类分析,最终得到几个主题词团7。将预处理之后的数据,先进行分词、去除停用词,根据手肘法确定类数即 K 值,然后把文档生成 TF-IDF矩阵,通过K-means聚类,最后得到几个类的主题词。首先,绘制聚类数与 SSE(所有样本的聚类误差)之间的关系图,根据手肘法的原理确定 k 值:当 k 小于真实聚类数时,由于 k 的增大会大幅增加每个簇的聚合程度,SSE 的下降幅度大,而当 k 到达真实聚类数时,SSE 的下降幅度会骤减。然后,确定完 k 值后,将文章中的词语转化成 TF-IDF 矩阵,之后就可以通过这个矩阵进行聚类。调用nltk 包,将文本分成 3 类,使用余弦相似分析。最后得出各分类文本的主题,分别统计不同类的文本中,打印出现次数最多的几个词8。3.2 聚类实验结果与分析3.2.1 豆瓣评论聚类图 4 是豆瓣数据聚类后每个主题词频较高的词。主题一中剧情、画面、故事都是关于电影属性的,三个和小时是关于电影时长的,罗伯特和帕丁森是演员。主题二、三中高频词也有一定的相关度。由以上豆瓣的评论的主题分类可见,K-means 聚类模型的效果良好,但并不能用最高频度的词作为主题词,高频词并不具有代表性。4 结论本文借助 Python 网络爬虫技术爬取了热映电影在国、内外网站的影评信息及票房数据,对影评进行全方面分析,通过数据可视化设计量化观影感受。以评论作为输入进行文本信息的聚类,生成对应主题。在所收集的评论数据集中包含多个网站信息和评论内容,有些的网站还包含了用户的地址信息。根据地址、时间、支持者人数等特异性信息做出可视化进而更好地分析观影人群的用户画像,观影体验,增长趋势来综合评价一部电影的影响。参考文献1 高巍,孙盼盼,李大舟.基于 Python 爬虫的电影数据可视化分析 J.沈阳化工大学学报,2020,34(1):73-78.2 蔡文乐,周晴晴,刘玉婷等.基于 Python 爬虫的豆瓣电影影评数据可视化分析J.现代信息科技,2021,5(18):86-89+93.3 温佐承,贾雪.基于 Python 的网络爬取 J.电脑编程技巧与维护,2020(12):23-24+32.4 伏康,杜振鹏.网站反爬虫策略的分析与研究J.电脑知识与技术,2019,15(28):28-30.5 Saqlain S M,Nawaz A,Khan I,et al.Text Clusters Labeling using WordNet and Term Frequency-Inverse Document FrequencyJ.Proceedings of the Pakistan Academy of Sciences,2016,Vol.53(3):281-291.6 Steinley D,Brusco M J.A New Variable Weighting and Selection Procedure for K-means Cluster AnalysisJ.Multivariate Behavioral Research,2008,43(1):77-108.7 周敬一,郭燕,丁友东.基于深度学习的中文影评情感分析 J.上海大学学报(自然科学版),2018,24(05):703-712.8 曲筱筱.电影评论数据的聚