长白山旅游数据爬取及可视化分析
2021-09-06孙文杰张素莉骏郑国勋张维轩
孙文杰 张素莉 许 骏郑国勋张维轩
(1.长春工业大学 计算机科学与工程学院,长春 130012;2.长春工程学院a.长白山历史文化及VR 技术重构吉林省重点实验室;b.计算机技术与工程学院,长春 130012;3.吉林大学 软件学院,长春 130012)
0 引 言
在精神文明日益发展的今天,出行旅游成为人们的主要休闲方式和社会经济活动,旅游业不仅能推动多个产业的发展,调节产业结构,同时也满足了人们日益增长的文化需要。其越来越成为国民经济的重要支撑。相关数据显示,2019 年中国游客出游52.87 亿人次,比上年同期增长11.2%[1]。疫情平稳期间的旅游人数仍然稳中有增。而与之相对应的是海量的无序化旅游数据日益激增。针对有效旅游数据进行准确分析、合理预测有助于制定与旅游发展相关的规划,同时能有效地帮助后续在旅游设施分配和资源调度等方面上制定明智的决策[2],发挥旅游信息价值的最大化。由此可知,旅游经济的发展与对数据的合理分析是密不可分的。
冰雪观光作为冰雪旅游的一大特色类型,呈现出稳步上升的态势[3]。长白山作为国家首批5A 级风景区,拥有独特的雪域风情,但区位偏远、适游时间短、旅游项目单一、创新不足、宣传不够,使旅游资源的知名度和美誉度与资源本身不匹配,难以实现其旅游价值,无法达到预计的旅游收入。为此笔者利用爬虫爬取长白山旅游数据,通过对长白山区域的旅游数据进行可视化分析,挖掘隐藏价值,为长白山地区旅游业的进一步发展提供范例。
1 爬虫设计
网络爬虫(Web Crawler),本质上是一种通过搜索引擎且按照固定规则收集数据的工具。以一个网页链接为入口,按照不同的策略自动爬取连向链接网页的所有信息,全面且高效地完成获取或更新这些网站的内容和检索方式。因此被广泛应用于互联网信息的自动检索。
目前国内外关于网络爬虫的学术论文层出不穷[4-5]。Ahn 等[6]通过爬虫爬取数据,用于调查影响旅客旅行满意程度的因素。于再富等[7]将爬虫获得的数据用于模型测试,大大降低了收集测试数据的时间成本。
从过程上看,爬虫要完成数据采集、处理和储存3 个步骤。针对爬虫的基本工作流程,长白山旅游数据爬虫系统首先需要爬虫获取URL的IP 地址,发出根据IP 地址和访问内容封装过的HTTP 请求,服务器通过数据接口寻找内容,将内容解析后进行提取,最后要选择相应的格式存储到本地。长白山旅游数据爬虫工作流程如图1 所示。
图1 长白山旅游数据爬虫工作流程Fig.1 Workflow of tourism data crawler in Changbai Mountain
1.1 采集与分页
爬虫模拟去访问服务器的网页,通过GET 和POST 等访问方式向目标URL(Uniform Resource Locator)发起HTTP(Hyper Text Transfer Protool)请求,然获取服务器所返回的HTML(Hyper Text Markup Language)文档。将旅游网页下载到本地后,会层层链接寻找到所有网页信息,首先对已经存储到库的本地的旅游网页等待建立索引等后续的一系列处理;如果链接包含的信息还没有被抓取,爬虫会形成爬取队列,使这些链接排队到待爬取队列中,等候爬取时的调度。对已经完成爬取的URL 地址,将他们存放在待爬取队列中,通过这种无返回的方式提高爬取的高效性。
对待爬取的旅游网站,各类数据分布在多个页面上,存在数字翻页形式,所以在找到网页的分页规律后,选择合适的页码间隔,需要借助range 函数划分页码间隔,修改随页码发生变化的参数,定义含有通配符的通用列表页,在设置循环阈值时需要与数据总量相适应。信息使用瀑布流展现的是目前的信息分页显示的另一种形式,通过预先加载的方式不断呈现信息,其内部的核心要点与分页相似,也是采取循环分页地址的方式进行数据爬取[8]。
1.2 标签解析与存储
每类标签中包含想要爬取的不同信息,爬取前需要详细分析标签结构,筛选出所需要的信息,使用find 函数寻找指定标签进行定位,分步查找标签中的目标信息,在解析完成后,将数据存入到空白列表中。选择页面上有价值的旅游数据如年份、游记名称、评价数、旅游时长、同伴类型等进行精准采集,采集数据如表1、表2 所示。
表1 长白山旅游信息Tab.1 Changbai mountain tourism information
表2 游记信息Tab.2 Travel notes information
旅游数据可以存储为txt、xls、csv 格式,而csv 文件比较易于实现和解析,笔者依照需要存储成csv类型的文件,以供后续进一步的分析使用。
2 数据分析
2.1 数据处理
采用Python 中的Pandas 库对采集到的数据进行整理,首先将旅游数据转化成DataFrame 格式,再从多个维度和角度进行处理分析。使用isnull 函数选取查看缺失值占总数据百分比大于90%的列名及其数值,认为它在数据分析中提供极其有限信息,所以直接删除。对缺失数据采用fillna 函数根据数据的不同类型进行了固定值填充,异常值(也称为离群值)检测是一个重要的部分,用duplicated 函数表示重复行的布尔系列值,返回缺失总数后进行去重。
采用选择(loc)、分组(groupby)、连接(merge)、汇总统计(mean)等方法进行数据的统计与处理。Pandas 具有数据处理的基本功能,使用其进行数据汇总和统计在实际数据分析中应用最为广泛[9]。
2.2 数据可视化
将数据转换成人们易于理解的图像或图形,可更直观地了解到数字背后的意义。朱琪等[10]提出了社交网络数据的可视化分析方法,增强了网站的吸附性,获得了较好的用户体验。吴亚东等[11]针对大规模网络安全数据开发出3D 可视分析原型系统,能有效识别不同类型的入侵访问,便于网络取证。
Tableau 是一款有效数据分析的交互式可视化软件,可以进行多种数据的融合,利用其核心的数据处理引擎,提高数据的查询和处理效率,并且能快速处理多种类型、各种规模的数据,实时进行数据的提取,不断进行动态交互,最终达到辅助决策分析的目的。图2 和图3 分别为长白山景区近十年旅游人数及收入折线图和景区游记数饼状图。
针对长白山地区的旅游数据,从图2 可以看出,除2010 年和2013 年稍有下降,长白山旅游情况呈总体上升趋势,其中游客数量,2010 年涨幅最大;2014 年-2016 年3 年内人数也稳步上升,同时,经过3 年的沉淀,在2017 年迎来了长白山地区旅游收入的高峰。收入方面,2010 年-2013 年收入骤增,且增长幅度大致相同,在2017 年达到了近十年收入增幅的最大值,人均消费大幅提升。
由图3 可以看出,2014 年-2016 年当地政府以及各大旅游网站采取了一定的宣传,游记数量占到近十年的57%。这也与图2 中3 年的游客人数增长趋势呈现正相关。此后游记篇数逐年递减,与游客人数趋势呈现出负相关,说明游客不再单一地依赖该网站记录行程。
图2 长白山景区近十年旅游数、收入折线图Fig.2 Changbai mountain scenic area in recent ten years tourism revenue line chart
图3 景区游记数饼状图Fig.3 Pie chart of scenic spots travel notes
图4 中对旅行时长分为了5 个时段,当出现“高于14 d”的情况时,该时段可能存在游览区域不仅限于长白山地区及周边地区,因此并不具有明显代表性,所以删除该时段。图4 中每个季度旅游总数信息与官方发布的淡季、旺季相符,春季人数最少,冬季人数最多,符合长白山旅游的特征。另一方面综合看,3~5 d的旅游时长是人们一年四季出行长白山选择的普遍时长,冬季人们的旅行时长会适当延长,旅行社可以针对季节不同对旅行方案做出相应的调整,夏季增加短途旅行路线的种类,冬季注重多样化旅游路线。
图4 旅游时长图Fig.4 Travel duration chart
此外,还对微博各景区的关注度和微博数量进行了调查。从图5 可以明显看出,尽管长白山地区官方微博账号发布微博数与其他同类5A 景区基本持平,但粉丝数量却有极大的差异。即使在武当山发布微博数量明显低于长白山地区的情况下,粉丝数量却远高出15 倍,据此分析,可能存在长白山官微宣传力度不够,内容不够新颖等问题。
图5 微博粉丝关注图Fig.5 Followers' follow chart on weibo
3 结 语
大数据时代下,面对高速产生的低密度、多类型的复杂数据,如何挖掘出有效信息显得尤为重要,运用爬虫工具高效的获取精准数据在互联网时代具有极高的可操作性,结合数据分析工具进一步挖掘潜抽象信息可以最大化的提炼数据价值,为后续的工作提供理论依据。笔者通过构建Python 爬虫高效快速的获取了长白山旅游数据,并利用数据分析模型反映出了部分隐含关系,得出了长白山景区在旅游管理某些方面存在不足,对促进长白山地区发展智慧旅游起到了积极作用。