文摘

互联网的迅速发展导致了大数据分析的患病率。数据挖掘从大数据中提取潜在的有价值的信息至关重要,因此收到了相当多的研究人员的注意。Python是一种常见的编程语言中使用数据挖掘。由于其丰富的数据库和强大的科学计算能力,数据挖掘的Python是一种不可替代的工具。本研究采用Python执行数据挖掘分析游客评论Booking.com。研究分为几个阶段,即数据源选择、数据采集、数据保存、数据预处理、索引的评论在Booking.com上通过面向Scrapy框架,通过硒和用户操作仿真分析蜘蛛程序的性能。数据挖掘可以用来识别有用的信息,可以作为参考消费者作出购买决定。提取数据从预订网站蜘蛛程序允许网站管理员来吸引更多的游客。提取数据的分析也有助于消除错误地判断了评论,帮助酒店提高服务质量、硬件和人员培训。

1。介绍

1.1。背景和相关的研究

Web爬行在数据调查和挖掘中扮演着重要的角色。web爬行的研究开始于1990年代,此后和显著的技术已经成熟。Web爬行使用一只蜘蛛,它会自动访问和下载网站。蜘蛛可以用来快速下载大量数据,取消各种手动任务的需要。一只蜘蛛的一个例子是互联网研究实验室的蜘蛛,它可以提取大量数据从数以百万计的网站。一份报告表示,这个项目已经从6000万个网站(用于获取数据1]。墨卡托爬行系统开发的海登和Najork2在康柏利用Java来实现多线程的同步功能爬行。改善爬行效率,墨卡托投影系统采用多种优化策略,如DNS缓存和延迟储蓄(3- - - - - -6]。Fish-Search爬行算法基于内容和评级的一个链接被首次提出De胸罩和Post (7]。该算法模拟鱼的觅食和繁殖行为和搜索网站相关选题假设相关网站是逻辑上相互关联的8- - - - - -12]。该算法使用二进制模式来确定是否与选题相关的网站。页面等。13)发明了PageRank算法在1990年代末。它用于网站在搜索引擎排名,目前使用的谷歌搜索引擎。提出了一种搜索策略,构造了一个概率模型根据网站内容和URL结构特点和使用模型来计算有效性得分为每个链接爬行过程控制(14- - - - - -16]。在台湾,web爬行技术研究起步较晚但发展迅速17]。从2003年开始,各种数据挖掘国内会议举行,这导致了数据挖掘的相关研究中爬行的患病率。江学者之间探索大数据分析,et al。18]提出了一种遗传algorithm-XGBoost机器学习分类器相结合的梯度直方图和局部二进制模式描述符来描述行人的特性,形成一种新的静态行人图像分析方法。高et al。19)创建了一个智能交通系统,以解决现有模型的复杂性和信息冗余问题。系统由一个队列长度根据vehicle-to-everything通信传感模型。他们的研究结果证实了模型精度成正比连接汽车的普及率,甚至可以感觉到队列长度在低渗透率的环境。在混合交通环境下,该模型执行同样的连接和无关的车辆。此外,其概率分布模型的性能相当于高渗透率下和低渗透率下的性能仍然是有利的。郭et al。20.)宣称,在无线传感器网络(网络),资源消耗与执行任务的高度相关,必须消耗计算和通信带宽。他们提议self-adapted网络任务调度策略和采用一个动态联盟离散粒子群优化算法和高效的粒子位置编码和适应度函数。王等人。21)开发了一个网络小说self-adapted智能路由方案。相对于其他WSN路由方案基于蚁群优化,展品更有利的网络性能方面的能源消耗,能源效率,和包交付延迟。Wan et al。22)坚持认为,在网络,高度密集的节点分布导致传输碰撞和能量耗散引起的冗余数据。为了解决这个问题,他们提出了一个节能的睡眠调度机制与网络的相似性度量。这种机制将传感器放入睡眠或唤醒的状态,有效减少能源消耗。的前提下维护数据的准确性,建议的机制实现良好的性能在聚类精度和能源效率。

口碑是关于卖家的非正式人际沟通的过程中,产品,服务,分享他们的经验和优点和缺点与其他消费者。蠕虫通信消息通过人民直接面对面的交流在日常生活中,交付过程是短暂的,消失后发送。维兰纽瓦等。23)发现,消费者的信任值电子蠕虫是高于传统营销渠道。由于eWOM是一个条件,消费者写下并使用在线和不立即消失;相反,其他消费者仍能看到这些消息后很长一段时间(24]。在互联网上,当买家搜索商品或服务,消费者意见存储很长一段时间,被大多数买家,并成为买家在购买商品或服务的参考点(25- - - - - -29日]。尽管eWOM不同于广告,夸大eWOM操作作家和消息也必须避免。如何区分不熟悉的信息的真实性,消费者没有办法理解取决于网站的审查方法。例如,预订网站(agoda, expedia)住宿只能由消费者写的书。使用数据挖掘分析方法,从广度、深度和规模的数据收集和分析数据的能力,解决问题(实际上发生的30.]。互联网科技股第二产品评论的传播,如Twitter, Facebook,线,微信,WhatsApp,无数的博客、电子邮件等。

1.2。研究目标

本研究使用Python代码的爬行程序收集并分析游客在Booking.com网站上的评论。爬虫允许勘探的评级由游客和这些评级的权重。研究目标如下:(1)web爬行进行文献综述,为后续研究者提供一个参考。(2)使用面向蜘蛛程序提取预订网站访问者评论,分析游客的评级,并模拟提取的数据量和时间的蜘蛛程序与数据提取并通过手工数据提取时间。

1.3。关键技术

Python-related技术用于本研究的列表如下:(1)数据采集:web爬行和数据库相关技术被用于数据采集。具体来说,面向Scrapy框架被用来获取数据,MongoDB是用来保存数据,PyMongo用于数据转换和其他相关的任务。(2)批量数据预处理:数据预处理。熊猫,NumPy Matplotlib工具在Python中提供强大的矩阵计算功能,方便快速的大量数据的预处理。

2。理论和技术基础

2.1。理论背景和Web爬行

非正式评价产品或服务后传达给其他消费者消费者使用它们(蠕虫);虚拟的,在线评论的产品和服务被称为电子口碑(31日]。口碑是一个非商业正面和负面评论之间的产品或服务的人。消费者的口碑评论分享他们的经验、想法和信息产品与其他的人。例如,谈论食物的质量或使用某一产品最近的经验,讨论有关体育赛事的闲言碎语,分享旅行住宿质量和同事的意见,等。由于社会媒体的快速增长和CGM的大量的复习材料,它影响了酒店业32- - - - - -35]。2017年,全球在线旅游业务占旅游市场总量的43%,和在线预订的比例增加了每年增长10.5% (36]。消费者产生社交媒体和互联网上的内容迅速激发人们开发所谓的大数据分析来解决现实生活中的问题。虽然很少有研究使用新的数据源来解决酒店业的重要研究问题,大数据分析技术尚未系统地应用于这些研究。因此,使用传统的方法来理解网民的评论领域的食品和旅游不能达到良好的结果。使用大数据分析方法解决实际问题的广度,深度和规模的数据收集和分析数据的能力30.]。

Web爬行技术第一次出现在1996年。它有多个名称,包括web数据挖掘、在线web知识发现和数据挖掘。这是一个产品的数据挖掘和网络技术,涉及到有价值的数据的提取和组织从不同的网站。提取的数据转换、分析和转换来识别潜在的有用的信息,检查现有的信息,评估现状,并作出预测。Web数据挖掘具有相当大的商业和科学研究价值(37- - - - - -41]。

大数据分析的发展和网络技术的流行已经加深了web数据挖掘的价值。目前,web数据挖掘技术被认为是一个最广泛的应用领域的数据挖掘。它可以用来有效地分析有价值的信息,比如用户行为和偏好,分析结果可以集成与其他商业策略来帮助企业产生实质性的好处(42]。

Web数据挖掘有几个独特的特点:(1)复杂性:Web数据是不同的和复杂的。互联网的迅速发展导致的多元化和交织在一起的数据由不同行业在许多格式,包括文本、视频、音频和图像。因此,如何快速,从逻辑上讲,而准确地获得目标数据是数据挖掘的主要话题。(2)动态性:网络技术的发展促进了在线数据的类型的多元化。先进的技术使大量的数据上传到互联网上每一天。数据的更新和重复计算网络数据管理至关重要。确保收集的数据是最新的web数据挖掘的一个重大挑战。(3)首先介绍异构性:当互联网,网站没有标准化的结构,导致大量的数据源之间的差异。数据挖掘必须克服的挑战从网站获取数据的不同结构。

2.2。Web数据挖掘流程

(1)网络数据采集:这个阶段涉及到网站内容的分析来获取有用的信息。数据挖掘获取所需原始数据在这个阶段,这样的数据特性复杂多样的结构。从收集到的原始数据还没有被处理,它们包含大量重复信息。(2)Web数据预处理:包括初始处理阶段收集的数据。算法和分析方法用于对数据排序。这些方法包括减少噪音,减少晶格,离散化。通过预处理,原始数据转换为更有用的数据,从而减少了计算时间,后续数据挖掘和数据分析的成本。(3)数据转换和集成:在这个阶段,预处理数据格式化为后续数据挖掘并保存在数据库中。具体来说,预处理数据被加载到数据库与预配置结构。这加快了后续数据提取的过程,添加、删除、调整,和查询,从而提高数据挖掘的效率。(4)模式识别:分类算法、关联分析、聚类分析等统计方法用于我的数据保存在结构化数据库的结果可以用来确定合适的挖掘模型。(5)数据分析:现有的数据挖掘工具是用于执行分析。分析结果转换为图形直接可视化、评估、合理开采的描述信息。

2.3。常见的Web数据挖掘技术

在前一节中提到的,各种数据提取期间使用数据挖掘方法和技术。几种常见的web数据挖掘工具如下:(1)编程语言:常见的语言用于数据挖掘是Python, Java, c#。(2)Python工具:常用工具使用Python程序包括Selenium框架,要求图书馆Scrapy框架,熊猫图书馆,多处理。

3所示。Web爬行系统需求

本研究调查了一个相当常见的数据挖掘的目标,在线预订网站,和这个目标的各个方面进行了分析,比较,解释道。在这项研究中使用的所有数据来自公开数据在互联网上,和一个账户登录不需要查看数据。数据源的中国官方网站Booking.com (https://www.booking.com/)。Booking.com提供网上预订服务了120000住宿在世界范围内,除了提供各种折扣和特别优惠。在这项研究中,一只蜘蛛程序被用来提取数据12在台湾地区(即台北市、高雄市、台中市、台南市,埔里镇Liuqui, Luodong乡、台东市,基隆市Jiaoxi镇桃园市和宜兰县)。

4所示。Web爬行程序的总体设计

4.1。程序设计和算法

最慢的一只蜘蛛程序请求发送的过程。当一个程序使用要求,get方法发送一个请求到一个web页面,蜘蛛程序无法控制的时间所需的目标服务器返回一个响应。程序可能会遇到问题,如断开,连接速度慢,不稳定的连接。两种常见的策略用于优化配置请求发送过程等待时间的长度和发送多个请求重复。

以下4.4.1。同步和异步的概念

介绍了同步和异步的概念之前,阻塞过程应该被描述的概念。阻塞进程停顿了一下,因为它缺乏授权使用特定的资源(例如,那些中央处理单元)。

如图1,如果函数2需要接收从函数返回1 1之前接收返回2,整个过程是同步的。相比之下,如果函数2不需要收到函数返回1 1之前接收返回2,整个过程是异步的。在同步过程中,1/2被阻塞,直到响应函数。

4.1.2。Scrapy框架

Scrapy是一个框架,旨在抓取网页数据和提取结构化信息。它只需要少量的代码快速获取web页面数据。Scrapy使用异步扭曲的框架,这是用Python和支持众多的互联网协议,包括TCP、UDP和TLS。这允许高速web爬行。图2显示了一个web爬行通过Scrapy的流程图。首先,创建一个列表包括所有网站处理,其次是处理返回的内容。接下来,目标数据从返回的内容。最后,提取的数据保存在数据库中。

3使用队列结构显示了优化的流程图,哪个更重视基本组件。具体来说,组件1和4在图2通过队列优化结构。

的流程图Scrapy框架分为五个组件(图4)。调度程序也是一个请求队列结构来描述物品保存由开发人员。一个URL发送调度程序的下载,然后发送一个请求到目标服务器和处理来自服务器的响应。然后发送接收到的响应从下载到蜘蛛,完成两个任务,即数据提取和URL提取。提取的url形式请求项相结合,由调度程序保存。提取的数据被发送到项管道进行处理。

Scrapy引擎是框架的核心,主要是协调所有组件和调节数据传输过程。下载中间件过滤器和修改请求发送的物品调度程序下载器。蜘蛛中间件调整反应从下载发送到蜘蛛。因此,Scrapy框架是基于任务规范和高效处理每个过程的响应时间降到最低。(1)算法。

(1) 以输入为IURL从用户
(2) 过程(URL)
{主要URL小写
如果web页面的存在
使用时间戳
和其他显示错误消息
退出}初始化队列“待办事项”= URL和做的
初始化n= 1;提取链接(todo [k]) {
而(待办事项!空的)如果页面框架然后{(= 1。的帧)
提取链接(URLi)}如果页面形式,忽略它们
其他{虽然(!EOF URL){解析文档为锚标记<一>得到
孩子的URL——旋度如果URL和旋度的领域是相等的
然后输入CURL在“待办事项”队列
其他提取链接(todo [+ + k])}}“完成”队列中输入url和增量n}
初始化数组选择[n] 6。显示网络图
选择(){(所有web图节点){如果(网络图节点被选中)
选择其他[我]= 1选择[我]= 0}}下载(选择[n])
{(= 1到n)如果选择[我]= 1然后保存完成的临时文件夹中(我)}
更新(url)退出
4.2。Anticrawling策略和应对措施

Web爬行的过程模拟请求发送和数据采集。一个简单的蜘蛛可能过度的负担在目标服务器请求发送频率过于高,网站崩溃。因此,网站管理人员采取各种措施对web爬行。表1提供了一些常见的web爬行和anticrawling策略。

5。Scrapy操作

5.1。建立Scrapy物品

命令Scrapy startproject mySpider输入。的命令是“scrapy startproject BookingSpider。”

项目的名字是BookingSpider。模板中,路径是“d: \ python37 \ lib \网站\ Scrapy \ templates \项目,”然而,在这项研究中,指定路径设置为“d: \ python37 \ lib \网站模板\ Scrapy \ \项目。“Scrapy框架然后表明命令cd BookingSpider Scrapy genspider例子example.com可以用来启动生成的蜘蛛。主目录crawlerBooking礼物包括_init_ BookingSpider文件生成的结构。py, _init_。py,物品。py,中间件)。py、管道。py,设置。py和scrapy.cfg。

BookingSpider文件包含一个文件夹命名为蜘蛛和一个名为Scrapy.cfg的文档。scrapy。cfg是整个蜘蛛程序的配置文件。设置。py然后指定BookingSpider。设置配置文件。部署用于启动Scrapyd同步功能。这个函数允许同步Scrapy框架的在线服务器或用户机器。

_init_。py是空的。的物品。py是用于定义目标导入scrapy爬行。

如图5中间件)。py提供了一个模板,它可以用来编写中间件和下载。

如图6站。py是用来创建一个process_item空函数数据处理和保存。

如图7,设置。py是用于配置整个项目内容。

5.2。蜘蛛的定义

进入命令Scrapy genspider bookingtw booking.com显示,bookingtw BookingSpider.spiders已经创建。它展示了BookingSpider文件夹中的文件的变化后genspider命令的执行。在bookingtw。py name属性表明蜘蛛程序的名称。在bookingtw。py,解析方法用于处理start_urls响应。值得注意的是,必须用于爬行的解析方法。

5.3。数据提取我

一个完整的蜘蛛使用方法如XPath提取数据。一个初始值分配start_urls (https://booking.com/reviews/tw/city/t-ai-pei.zh-cn.html)。随后,解析被修改。蜘蛛是用于测试;因此,解析内容如图8

进入命令Scrapy bookingtw发起蜘蛛爬行测试(图9)。它介绍了数据日志记录后,蜘蛛被激活。

在正常情况下,用户不需要查看整个日志。在设置LOG_LEVEL可以添加。py控制日志显示。LOG_LEVEL四层;在提升等级秩序,这些水平调试,信息,警告和错误。后LOG_LEVEL设置为一个特定的水平,仅显示数据表示及以上级别的日志。例如,设置LOG_LEVEL“警告”导致延迟只显示警告和错误数据,而调试和信息数据是隐藏的。因此,添加LOG_LEVEL =“警告”设置。py收益率以下结果。Result01由多个选择器项目。修改源代码如下。这使得数据提取的选择器。

5.4。数据提取二世

使用管道来存储数据,他们在settings.py必须被激活。

一个值在ITEM_PIPELINES是300。这个值表示的优先级管道;较低的值表示优先,也就是说,数据通过管道较低的值。接下来,蜘蛛使用收益率来传输数据。

源代码的管道图所示10

Scrapy爬bookingtw命令执行了。它介绍了执行结果。值得注意的是,process_item过程所必需的管道进行处理和保存数据。这个结束Scrapy框架的基本过程。

6。测试与Booking.Com

整个web爬行过程是根据程序进行介绍。

6.1。Scrapy参数的配置

使用settings.py参数配置。

的源代码解释如下:(1)激活管道,酒店评论booking.pepelines。HotelReviewBookingPipeline激活。这个管道设置为最高优先级。(2)参数配置根据robots . txt。(3)这个长时间设置为在初始化期间5 s。(4)的最大下载延迟设置为60年代。(5)HTTP缓存被激活和配置。

6.2。项目启动

命令行启动程序。这是通过在Scrapy cmdline包。源代码如下:

6.3。目标项目的定义

爬和保存的项类型定义使用图中所示的源代码11

描述:(1)每个地理区域的名称是使用city_name定义。(2)每个酒店都使用目标定义的名称。(3)每个酒店的评级定义使用分数。(4)每个评论定义使用日期的日期。(5)整体使用overall_comment评级的定义。(6)积极评价使用positive_comment被定义。(7)使用negative_comment负面评论被定义。

6.4。蜘蛛的定义

蜘蛛是使用第二小节中列出的步骤定义一节。有关程序描述如下(图12)。(1)url链接的评论页面共享目标地理区域被定义。使用base_url url的属性定义。(2)road_map配置来定义每个地理区域的评论页面和评论。(3)定义字符串转变和时间。(4)初始请求被定义。在start_request,爬的url被拼接回到之前的收益。(5)收购酒店的所有评论的方法在一个地理区域被定义为get_one_hotel_review_lists。XPath代码获取酒店的评论框架被定义为/ / ul (@class = ' rlp-main-hotels__container)。(6)地理区域的方法获取所有评论被定义为get_one_review_list(7)方法获取一个酒店被定义为get_one_review_entity发表评论。

6.5。管道的定义

从web爬行获得的数据被保存在一个csv文件。源代码如下(图说明13)。(1)熊猫数据库被用来快速保存数据。(2)csv文件的参数定义。(3)保存数据的定义在csv文件中提出了在第一行。(4)物品发送的蜘蛛被保存在已定义的格式。(5)获得的数据被保存在csv文件。(6)附录A是csv文件的内容。

7所示。结论

7.1。程序执行结果和分析

源代码完成后,在台湾12个地理区域(即。,Taipei City, Kaohsiung City, Taichung City, Tainan City, Puli Township, Liuqui, Luodong Township, Taitung City, Keelung City, Jiaoxi Township, Taoyuan City, and Yilan County) were selected to verify the developed program and compare the speed and effectiveness with manual data collection. A manual extraction approach took approximately 5 h to extract 26561 lines of comments related to Taipei City, whereas the developed Scrapy method only spent 57 min to collect 82278 lines of comments (Table2)。这验证了在缺乏anticrawling措施,Scrapy方法在数据提取更有效。

程序执行的结果不是由于时间和资源的局限性进行了优化。然而,当面向程序用于模拟实际用户的操作来提取中文和英文评论和评级的预订网站,它优于手工提取方法在数据获得和时间。此外,开发的程序可以用来同时提取数据从多个预订网站,从而使更大范围的研究应用。

7.2。研究的贡献

辛德勒和Bickart44]研究了网上购物,发现大多数网上购物的消费者会浏览在线评论,它的主要目的是收集消费者与产品体验提供购买意图。有偏见的消费者在线评论的当前状态包括非常积极和负面评论。正面评价表达喜欢产品,强烈推荐购买。Gretzel et al。45)研究,77.9%的用户最关心呆在旅行过程中当他们认为在线评论在Tripadvisor上。高达92.3%的用户使用旅游网站在住宿和备选方案,收集信息,避免不舒服的酒店(46- - - - - -49]。据Tripadvisor.com,大多数潜在的酒店客人浏览网上酒店点评,和消费者在线评论可以影响潜在的购买意图(45]。例如,Travelindustrywire.com 84%的酒店客人都受到酒店评论的影响。因此,使用传统的方法来理解网民的评论领域的食品和旅游不能达到好的结果(50]。

本研究试图解决一个问题关于数据过载在预订网站的分析评论。面向程序被开发来模拟真实用户的行为当收集预订网站的评论和评级。使用这个程序可以方便的提取隐藏信息等数据进行管理决策。程序执行结果验证,开发程序优于手动提取方法的评论收集的数量,评级的相关性和时间消耗。此外,本研究编制的相关研究数据挖掘为后续研究者提供一个参考对这个话题感兴趣。

7.3。未来的研究方向

为未来的研究提出了三个方向。首先,类似面向蜘蛛程序的参数应进一步优化。尽管参数优化并没有客观的研究,增加评论爬的数量足够的计算资源和时间的前提下可以提高整体的研究成果。第二,开发的程序可以应用于推荐定制产品和信息查询服务。最后,可以分析其他预订网站进一步了解web爬行。

数据可用性

和/或使用的数据集分析在当前研究可从相应的作者。

的利益冲突

作者宣称没有利益冲突。