基于Python聚焦型网络爬虫的影评获取技术
2019-06-22郭向向郑嘉慧苗学芹
郭向向 郑嘉慧 苗学芹
摘要:在大数据的环境下,网络资源越加丰富,传统的搜索引擎已经不能够满足大众获取信息的需求,随着计算机逐步的发展,网络爬虫的出现进入了人们的视野。本文主要讲述了网络爬虫的概念、模块以及操作流程,并通过给定的网址快速爬取影评信息,进行分词做成词云图形式展示出来。
关键词:Python 爬虫 影评 正则表达式 词云
当今互联网技术迅速发展,出现了包括大数据和云计算等等新型的技术,在如此庞大的数据量中获取自己想要的需要耗费大量的时间,搜索的结果准确率也不是很高。本文通过利用Python爬虫分类中的聚焦型爬虫网络系统,在指定的网页下抓取相关的信息。在本文的实验中通过在电脑网页中以手机用户的身份抓取猫眼网中最新电影《悲伤逆流成河》的影评信息,成功的爬取后保存到本地,接着利用jieba分词对下载好的影评信息进行过滤筛选,将高频率出现的词语通过影评词云图的形式展现在面前。这样的爬取信息大大的提高了爬取信息的准确性,提高了资源的利用率,节约了查找信息的时间,真正的实现了有目的性的抓取信息。
一、基于Python的聚焦型网络爬虫架构
(一)网络爬虫的定义及分类
网络爬虫,又称网页蜘蛛,是一个功能强大的能够自动提取网页信息的程序。它模仿浏览器访问网络资源,从而获取用户需要的信息。网络爬虫主要分为四类:通用型爬虫、聚焦型爬虫、增量型爬虫、深层爬虫。
(二)工作流程
聚焦型网络爬虫的工作流程如下:第一:找出初始种子URL的集合.第二:在该集合中將相应的url从确定的网站下载到本地,将相同的url队列放在一起。第三:对已经下载好的数据进行分析处理。第四:重复第二第三步骤,直到将所有的url进行完全抓取。
二、数据获取
本文采用Python网络爬虫来进行处理,由于猫眼是一个反爬虫的网站,所以在做网络爬虫时,还需要进行浏览器访问模拟,通过对网页源代码的分析,用正则表达式来获取所需数据。所以本实验以爬取猫眼最新电影影评为例,详细讲解Python聚焦型爬虫的实现原理。
(一)页面抓取
根据指定的url,抓取猫眼网电影《悲伤逆流成河》页面。通过建立连接,发送HTTP请求.利用Re-quests建立与服务器的连接,当服务器接收到请求后,返回相应的HTTP应答。
(二)页面处理
进行页面处理时,首先需要对HTML相关的源代码进行过滤和处理,分析出需要的信息,然后再对分析出的结果进行整合。对应网页的HTML结构文档。
(三)数据可视化分析
数据可视化是数据分析很重要的一部分,它能够从繁杂的数据中更直观更有效的获取信息.当获取到影评信息之后,需要对数据进行可视化,首先需要做的是数据的清洗。第一,将所有的评论转化为字符串格式。第二,利用正则表达式匹配中文,去掉所有的标点符号。第三,对数据进行中文分词操作,并去掉数据中没有参考价值的虚词,实验中使用的是Jieba分词。第四,最后调用WordCloud词云包,将数据用词云进行显示:plt.show ()
三、爬虫实现
本文以爬取猫眼电影《悲伤逆流成河》影评为例,详细讲解Python爬虫的实现原理.
(一)抓取网页数据
步骤一:要想爬取网页,我们首先将其下载下来。我们选择最基础的方式使用Python的urllih模块进行下根据url获取数据。
步骤二:需要对得到的html代码进行解析,提取我们需要的数据。
步骤三:存储下载好的影评到指定文件夹。
下载数据的起始时间为2018年11月3日零点,截止时间为2018年11月3日中午12点。共60条评论数据。
(二)用词云进行展示
步骤一:导入jieba等模块,并获取所有评论,获取已经下载好的影评。
步骤二:设置分词,设置屏蔽词。对数据进行中文分词操作,并去掉数据中没有参考价值的词包括:电影、一部、一个、没有等等。
步骤三:导入背景图。导入的背景图片只用于获取图片内形状,非在背景图片上加影评。本次作业导入的是葫芦娃背景。
步骤四:将分词后数据传入云图,并保存。调用WordCloud词云包,将数据用词云进行显示。以下是《悲伤逆流成河》词云图。
四、 结束语
网络爬虫作为新型获取目标信息的工具,其价值和使用前景都非常的大。本文中,针对性地爬取《悲伤逆流成河》影评数据,确保了数据的真实性与最新性,避免了无关数据的干扰.不过,若爬取的内容过多,Python执行会花费很多时间,所以本文只获取60条影评数据。如果结合Python的多线程技术,再将一些诸如下载缓存优化和并发性等因素考虑在内的话,它的性能将会得到很大的改善。
参考文献:
[1]高宇,杨小兵.基于聚焦型网络爬虫的影评获取技术[J].中国计量大学学报,2018,29(03):299-303.
[2]田晓玲,方园,贾民政,赵熙雅.基于数据分析的关键词类网络爬虫设计[J].北京工业职业技术学院学报,2018,17(04):36-43.
[3]沈漪,华敏敏.基于Python正则表达式的彩票信息爬取[J].安徽电子信息职业技术学院学报,2018,17(05):19-21.
[4]罗咪.基于Python的新浪微博用户数据获取技术[J].电子世界,2018(05):138-139.
(作者单位:云南师范大学泛亚商学院)