Python网络爬虫技术的研究
2021-06-29三亚学院
三亚学院 杨 月
旅游行为特征已成为目前学者们的研究重点。学者们在以往的旅游行为研究中很多采用问卷调查来获取数据。而在信息时代,人们通过博客、微博、微信朋友圈来发布自己的旅游感触,学者们便通过游客在网络发布的网络游记来获取数据。近年来,部分学者展开了对旅游方面的研究,如林毅焜在基于文本挖掘的典型旅游网站的旅游分享研究以陕西省为例一文中,采用文本挖掘的方法,选取携程网、去哪儿网等旅游网站作为研究样本,对旅游游记中词出现的频率、语言所蕴含的意义、网络情感进行分析。吕宛青等在基于网络文本分析的丽江大研古城旅游迷思演变研究一文中通过对网络游记和相关文献的分析,发现了古城多年来旅游演变的根本原因。徐柳在婺源篁岭品牌传播策略的优化研究——以游客网络游记为样本一文中,从消费者感知视角来考量婺源篁岭的品牌传播效果,并就其品牌传播策略的优化进行探讨。刘彦花等在基于网络游记的游客旅游行为特征分析一文中以到访广西的游客为研究对象,基于网络爬虫技术研究旅客行为特征。本文基于游客发布于旅游网站的网络游记,从吃、住、行、玩等方面归纳总结到访三亚游客旅游行为特征,从而为三亚开展合适的旅游景点宣传提供参考,也为促进三亚旅游行业的发展做出一定的贡献。
1 网络爬虫技术
1.1 网络爬虫定义
随着大数据时代的来临,网络爬虫在互联网中的地位至关重要。面对互联网庞大、海量的数据,如何自动且高效地获取互联网上为人们所用的数据是非常重要的一个问题。而爬虫技术就很好的解决这一问题。网络爬虫是依靠预先设定好的规则而进行自动的抓取网络信息的过程。网络爬虫也叫做网页追逐者,以往人们获取互联网信息都是采用手工的方式,这样使得搜集成本过高、效率比较低下,而网络爬虫进行数据信息的采集与整理时,可以依靠预先设定好的规则自动地从互联网中爬取。如今在大数据时代,信息是一个企业生存的重要命脉,因此信息的采集工作对企业来说至关重要。
1.2 网络爬虫种类
网络爬虫按照系统组成结构和技术的实现上分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等类型。通用网络爬虫的爬取目标是全互联网资源,目标数据、爬行范围都很庞大、主要应用于大型搜索引擎中。通用网络爬虫的工作流程是先抓取网页,通过搜索引擎将准备爬取的地址加入到通用爬虫的地址队列中,然后进行网页上内容的爬取。爬取后要对爬下来的数据进行存储、保存到本地,在这个过程中会存在把某个网页大部分重复的内容去除的情况。然后对爬下来的数据进行预处理提取文字、分词、消除噪音。
聚焦网络爬虫是有选择地按照预先定义好的主题进行网页爬取,目标数据、爬行范围相对通用网络爬虫比较小。和通用爬虫相比,爬取目标为与主题相关的页面,它能够从海量的信息库中选择精准有效的信息,该爬虫可以很大的节省爬取所需的硬件和网络资源,还可以很好地满足一些特定人群对特定领域信息的需求。
增量式网络爬虫通过爬虫程序监测某网站数据改变的情况,以便可以爬取到这个网站更新后的数据。通过增量式爬虫可以继续爬取因一些原因未完全爬完的数据,或者网站更新的数据。
Web页面按其存在方式可划分为深层和表层页面。表层页面指传统搜索引擎可以索引的页面,能通过静态链接直接获取,不需要提交表单;深层页面需提交一定的关键词之后才能获取得到的页面,它不能通过静态链接直接获取。在互联网中,表层页面比深层页面数量少的多,因此实际爬取过程中要想办法爬取深层页面。
1.3 爬行策略
全互联网是由相互链接的网站及页面组成的。从理论上说,爬虫从任何一个页面出发,沿着链接都可爬完网上的所有页面。由于网站及页面具有非常复杂的链接结构,爬虫需要采取一定的爬行策略才能爬完网上所有页面。实现一个完善的爬虫系统,爬行策略至关重要。爬行策略有如下几种:深度优先爬行策略是爬虫沿着发现的链接先爬取一个网页,然后一直往前爬行,爬行到前面再也没有其他链接为止,然后在返回到第一个页面,沿着另一个链接再一直往前爬行。如图1所示,爬取的顺序是A→D→E→B→C→F→G;广度优先爬行策略:是指爬虫在一个页面上发现多个网络链接时,不是沿着一个网络链接一直向前爬行,而是先把页面上同一层次链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。爬取的顺序是A→B→C→D→E→F→G;大站优先爬行策略是对于准备抓取地址队列中的所有网页,把其根据所属的网站进行分类,优先爬取网站的网页数量比其他多的网站。反链爬行策略是指的是一个网页被其他网页链接指向的数量,当某个网页的内容受到其他人的推荐的程度高,这种网页被优先爬取。
图1 网页层次结构图
1.4 网络爬虫的三种筛选技术
(1)正则表达式
在Python 编程过程中会常使用公式中的正则表达式。正则表达式和常用的通配符类似,是用来进行文本匹配的工具。和常用的通配符相比,正则表达式更能精确描述编程者的要求。正则表达式匹配是网络内容分析与信息处理的关键技术,它是由美国数学家提出来的一种强大的工具用于字符的匹配和替换,主要的功能是用来匹配、替换和提取。同时能够非常快速精准的处理一系列比较复杂的字符串的检索、替换和提取,具有快速匹配文本进行信息抽取的特点。普通字符,非打印字符,通用字符,原子表这些字符组成了正则的基本部分。描述和分析文本内容可以适用正则表达式进行文本匹配,一般的文本字符都是可以通过一定的转化为对应的正则表达式的形式。正则表达式虽然描述能力强,但是若要实现匹配功能,还要进行等价转化。复杂的正则语义逻辑会增加时间和空间的复杂度,因此,正则表示不太利于大规模集合的构造和高速的数据流匹配。
(2)XPath路径语言
XPath语言是一种专门在XML文档中用于查找想要信息的语言, XML程序可利用XPath在XML文档中对元素和属性进行导航。之所以需要导航是因为XML文档是用来进行数据存储的,若需要将数据提取出来使用,要通过查找标签和属性来获取存储的数据。
(3)Beautiful Soup
Python一个网页解析的库是Beautiful Soup,Beautiful Soup最主要的功能是从可以从网页抓取想要的数据。它可以从HTML或XML文件中提取数据。Beautiful soup支持不同的解析器,比如对HTML、XML、HTML5解析,一般情况下,用的比较多的是lxml解析器,编写完整的应用程序Beautiful Soup所需要的代码较少。
2 Python含义
Python语言是高级语言具有很强的可读性,c、c++、java等编程语言一般使用英文关键字,和这些语言相比较,Python是一种更有特色的交互式语言,用户编程时可以在Python提示符后直接执行代码,还能够简单有效地面向对象编程。同时,该语言语法结构比较独特、交互性好、结构也比较简单、相对其它语言编码更容易,适合非计算机专业的人员。
3 游客旅游行为特征分析
游客往往把旅游游记通过网络发布在一些网站,本文以2020年以来游客来三亚游玩后,发布在“携程网”的数据为搜索范围,在信息采集过程中将搜索范围的网址作为网络爬虫的目标网址,最后采集这些信息,信息采集完成后将其导出为EXCEL表格数据。本次爬虫共收集到2万余条网络游记,通过爬虫选取了100余篇,为了确保数据的可靠性以及研究的真实性,需要对选取的样本进行预处理,在处理样本时需按照以下步骤进行:一是去噪利用结巴库中的停用词将中文标点、英文单词、符号等与内容无关的部分剔除。二是利用结巴库中的cut方法采用精确模式进行文章的分词。三是利用统计的方法将词频进行统计排序并将前二十几名词频进行分析。
分析的结果显示:当前游客来三亚游玩常用的旅游交通工具有航空、铁路等,游客从客源地到三亚的交通以飞机居多,表明大部分游客来三亚都是选择飞机作为交通工具。游客来三亚的主要有度假、拍摄婚纱等活动,另外从游记的词频排名中可以看出选择“亚龙湾”“海棠湾”住宿比较多。旅游景点方面“亚龙湾”、“蜈支洲岛”、“天涯海角”“南山寺”出现频次较多。饮食方面选择海鲜、小吃种类比较多。
总结:本文通过研究网络爬虫技术,以三亚携程上网络游记为例,深入理解网络爬虫的概念、爬虫策略等各个方面。数据显示通过词频分析可以得出:第一,游客在三亚的主要有度假、拍摄婚纱等活动。第二,这些活动所写的游记高频词频主要是吃、住、行、玩这几个方面。因此,三亚应从这些词频出现比较多的各个方面发力,以提高三亚旅游业的发展。