CN106021391B - 基于Storm的产品评论信息实时采集方法 - Google Patents
基于Storm的产品评论信息实时采集方法 Download PDFInfo
- Publication number
- CN106021391B CN106021391B CN201610313091.3A CN201610313091A CN106021391B CN 106021391 B CN106021391 B CN 106021391B CN 201610313091 A CN201610313091 A CN 201610313091A CN 106021391 B CN106021391 B CN 106021391B
- Authority
- CN
- China
- Prior art keywords
- product
- time
- module
- comment
- acquisition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于Storm的产品评论信息实时采集方法,该方法在基于Storm平台的采集***进行,该方法包括产品抓取模块周期性的从网络中抓取数据,预处理模块根据产品Id初始化产品的属性参数,调度模块将数据封装成Tuple发射到Storm集群中,更新检测模块检查是否有新的评论产生,将其送到评论信息抓取模块,评论信息抓取模块检测到有评论信息更新的产品进行分布式抓取,访问间隔调整模块动态调整产品下一次采集的时间等。本发明将传统的网络爬虫与开源分布式流处理框架Storm相结合,使得传统的网络爬虫能够运行在流处理平台上,在实时信息采集性能上得到极大提高,具有很强的实际价值和现实意义。
Description
技术领域
本发明属于网络信息处理技术领域,具体涉及基于Storm的产品评论信息实时采集方法。
背景技术
随着互联网用户数量的迅速增长,网络越来越成为人们生活中不可获取的一部分,特别是电子商务的发展,改变了人们消费方式,使得人们的购物非常方便、快捷。消费者不会再为独自一个人逛街而沮丧,不再为没有时间逛街买东西而烦恼,更不用为了挑一件商品而东跑西跑。在电子商务的消费模式下,只需要一张银行卡,一台电脑,消费者可以买到任何的东西,不需要很多的时间,不需要很多的劳力。为了给消费者提供更好的购物体验,大多数电子商务网站为消费者提供相互交流的平台来发表其针对某件产品或服务的评论,作为一种新型的口碑传播方式,产品的评论信息已经成为用户了解产品质量和服务的重要信息来源,显然评论信息的好坏会对消费者的购买决策产生很大影响。此外,对于商家及时的处理商品的负面评论信息和解决消费者反馈的问题,对保持商家的良好形象和商品的销量显得尤为重要。因此,如何尽早的获取电商网站中产品的评论信息,进而实时的把握商品舆情,无论对商家还是消费者都显得十分重要。
然而,近些年来,实时信息采集的相关文献也并不少,但在要求准确的前提下去预测产品下一次评论产生的时间是一个很困难的任务,目前并没有很好的预测模型和算法出现。然而与实时抓取网页相关的研究领域有很多,比如预测网页的更新频率,方法大致分为以下几类:
(1)基于泊松分布等数学模型来模拟网页的更新行为,该思想的提出到经历的研究时间也比较长,但这很难有实质性的进展和突破,其次,该模型仅仅对粗粒度的时间预测效果较好,而对于细粒度的时间预测效果比较差。
(2)用一个数学概率模型来模拟网页修改的行为,用该数学模型近似预测网页的修改频率,但是用这种方式与网页行为拟合的准确率和稳定性都不是很高。
(3)A.K.Sharma等人提出了比较新的思想,不需要网页完整的历史记录,每次访问网页后都会调整相应网页的下次更新时间,并根据不断的抓取积累起来的网页历史修改频率的数据来对网页下一次更新时间进行预测,不足之处是过于关注网页的更新频率,而在及时抓取新修改的网页方面细节考虑的不周。
发明内容
本发明的目的在于提供一种基于Storm的产品评论信息实时采集方法,以提高实时采集的准确率和稳定性。
为实现上述目的,本发明采用以下技术方案:
本发明公开了基于Storm的产品评论信息实时采集方法,该方法在基于Storm平台的采集***进行,所述的采集***包括产品抓取模块、预处理模块、调度模块、更新检测模块、评论信息抓取模块、HBase数据存储模块、访问间隔调整模块;该方法包括:
a.产品抓取模块由时间触发服务器激活,周期性的从网络中抓取数据,获取产品的属性参数并存入到HBase数据存储模块中,同时检查新抓取到的产品Id是否已经存在待爬队列,如果已经存在则忽略,否则将其送到预处理模块进行预处理。
b.预处理模块根据产品Id初始化产品的属性参数,将初始化后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue。
c.调度模块不断的从fetcher_queue队列中读取数据,并将数据封装成Tuple发射到Storm集群中。
d.更新检测模块检查是否有新的评论产生,如果该产品有新评论产生,就将其送到评论信息抓取模块。
e.评论信息抓取模块对更新检测模块检测到有评论信息更新的产品进行分布式抓取。
f.访问间隔调整模块动态调整产品下一次采集的时间,然后将其重新放入待爬队列fetcher_queue中。
进一步地,所述的访问间隔调整模块调整产品下一次采集的时间,包括以下步骤:
S1.获取产品历史最小更新频率fl、最大更新频率fu以及采集间隔interval。
S2.获取产品当前的采集次数nt、评论信息发生更新次数nc,计算出产品当前的更新频率fc=nc/nt。
S3.根据下列公式来调整产品的采集间隔interval,
next_interval=interval+Δt (公式1)
其中μ(x)是单位阶跃函数,
S4.通过产品当前的评论量n、最近一次评论信息产生的时间间隔t1以及最近一次采集的产品评论信息的最大滞后时间t2作为其优先级量化因子,分别对n、t1、t2做0~1区间的归一化操作,按下式计算该产品此时的优先级p,重新放入待爬队列fetcher_queue;
优选地,预处理模块对产品进行预处理的步骤如下:
S1.获取产品当前的评论总数和最近一次评论时间,根据评论总数和最近一次评论初始化其采集间隔interval。
S2.初始化产品的最大更新频率fu和最小更新频率fl,将产品Id经过url链接优化处理,然后将该产品的采集间隔和优化过的url链接放入频率初始化队列frequency_init_queue;只要frequency_init_queue不为空,频率初始化爬虫freCrawer即以该产品的采集间隔对该产品进行500次的采集,并记录共发生更新的次数nc,采集结束后,计算其更新频率fc=nc/500,并用fc初始化产品的最大更新频率fu和最小更新频率fl。
S3.将预处理过后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue。
优选地,更新检测模块获取产品最新的评论总数current_total,然后和产品的历史评论总数old_total对比,如果大于历史评论总数,则更新产品的历史评论总数、采集次数、评论信息发生更新次数以及最近一次采集时间,并将该产品发送给评论信息抓取模块进行评论信息采集,否则只更新产品的采集次数和最近一次采集时间。
优选地,所述的评论信息抓取模块分布式抓取的步骤如下:
S1.获取该产品的最近一次评论时间recent_comments_time;
S2.根据更新检测模块的检测的结果,下载相应页数的评论信息;
S3.对下载的评论信息做进一步的清洗,找出对产品做出的最近一次评论时间,并更新该产品最近一次评论时间;
S4.将抓取的新的产品评论信息发送到HBase数据存储模块进行存储。
采用上述技术方案后,本发明的有益效果在于:本发明将传统的网络爬虫与开源分布式流处理框架-Storm相结合,充分利用Storm分布式、高度容错性、无数据丢失、可扩展性强以及实时处理等优势,并通过动态调整采集时间间隔算法和采集调度策略分别对采集时间点和采集调度顺序做了进一步优化,这样既减少了爬虫的网络请求次数,而且还使得每次请求更合理、有效,最后通过测试分析Storm集群的吞吐量和处理延迟等性能,结果验证了Storm能够胜任对实时性要求较高场景下的网络数据采集任务。
附图说明
图1为本发明流程架构图。
图2为本发明评论信息分布式抓取架构图。
具体实施方案
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。
如图1所示,本发明公开了基于Storm的产品评论信息实时采集方法。本发明方法在基于Storm平台的采集***进行,采集***包括产品抓取模块、预处理模块、调度模块、更新检测模块、评论信息抓取模块、HBase数据存储模块、访问间隔调整模块,以下对该***进行评论信息实时采集方法进行详述:
a.产品抓取模块
由时间触发服务器激活,周期性的从网络中抓取数据,获取产品的属性参数并存入到HBase数据存储模块中,同时检查新抓取到的产品Id是否已经存在待爬队列,如果已经存在则忽略,否则将其送到预处理模块进行预处理。
b.预处理模块
根据产品Id初始化产品的属性参数,将初始化后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue,其中待爬队列fetcher_queue是Beanstalkd队列中的一个管道。具体步骤如下:
S1.获取产品当前的评论总数和最近一次评论时间,根据评论总数和最近一次评论初始化其采集间隔interval。
S2.初始化产品的最大更新频率fu和最小更新频率fl,将产品Id经过url链接优化处理,然后将该产品的采集间隔和优化过的url链接放入频率初始化队列frequency_init_queue;只要frequency_init_queue不为空,频率初始化爬虫freCrawer即以该产品的采集间隔对该产品进行500次的采集,并记录共发生更新的次数nc,采集结束后,计算其更新频率fc=nc/500,并用fc初始化产品的最大更新频率fu和最小更新频率fl。
S3.将预处理过后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue。
c.调度模块
该模块主要负责采集***中产品的采集顺序。由于该采集***是基于Storm平台的,而Storm作为实时的流处理平台,只有源源不断的为它提供数据,它才能正常工作,Spout作为Storm的核心组件,它负责向Storm集群中发射数据流,因此,该模块会不断的被Spout调用,从而不断的从fetcher_queue队列中读取数据,并将数据封装成Tuple发射到Storm集群中。
d.更新检测模块
该模块主要是用来检测产品是否有新的评论产生。它根据产品的一些采集参数来判断产品是否有新的评论产生,如果该产品有新评论产生,就将其送到评论信息抓取模块:更新检测模块获取产品最新的评论总数current_total,然后和产品的历史评论总数old_total对比,如果大于历史评论总数,则更新产品的历史评论总数、采集次数、评论信息发生更新次数以及最近一次采集时间,并将该产品发送给评论信息抓取模块进行评论信息采集,否则只更新产品的采集次数和最近一次采集时间。
e.评论信息抓取模块
该模块是整个采集***的核心。该模块对更新检测模块检测到有评论信息更新的产品进行分布式抓取。由于它运行在Storm集群中,因此,可以实现对产品评论信息的分布式抓取,分布式爬虫架构图如图2所示,架构图中评论信息抓取模块包含下面组件:
(1)Nimbus:Storm集群中的控制节点,负责Storm集群中资源分配和任务调度。
(2)Supervisor:Storm集群中的工作节点,负责接受Nimbus分配的任务,启动和停止属于自己管理的worker进程。
(3)Worker:Storm集群中运行具体处理逻辑的进程。
(4)Executor:同一个spout/bolt的task可能会共享一个物理线程,该线程称为Executor。
(5)Task:worker中每一个spout/bolt的线程称为一个task。
(6)Zookeeper:是负责nimbus和supervisor之间协调的服务。
(7)HBase:负责产品评论信息的存储。
评论信息抓取模块分布式抓取的步骤如下:
S1.获取该产品的最近一次评论时间recent_comments_time。
S2.根据更新检测模块的检测的结果,下载相应页数的评论信息。
S3.对下载的评论信息做进一步的清洗,找出对产品做出的最近一次评论时间,并更新该产品最近一次评论时间。
S4.将抓取的新的产品评论信息发送到HBase数据存储模块进行存储。
f.访问间隔调整模块
该模块动态调整产品下一次采集的时间,然后将其重新放入待爬队列fetcher_queue中。包括以下步骤:
S1.获取产品历史最小更新频率fl、最大更新频率fu以及采集间隔interval。
S2.获取产品当前的采集次数nt、评论信息发生更新次数nc,计算出产品当前的更新频率fc=nc/nt。
S3.根据公式1、公式2来调整产品的采集间隔interval。
next_interval=interval+Δt (公式1)
其中μ(x)是单位阶跃函数,
通过上面公式1、公式2分析可以发现对产品采集间隔的调整具体可以分为以下三种情况:
(1).如果当前计算的评论信息产生频率fc介于下界fl和上界fu之间,无需调整,此时Δt=0。
(2).如果当前计算的评论信息产生频率fc小于下界fl,说明产品产生评论信息的频率变慢了,与历史采集间隔相比需要增加,此时Δt>0,并重新设置下界fl和产品的采集间隔。
(3).如果当前计算的评论信息产生频率fc大于上界fu,说明产品产生评论信息的频率变快了,与历史采集间隔相比需要减少,此时Δt<0,并重新设置上界fu和产品的采集间隔。
S4.通过产品当前的评论量n、最近一次评论信息产生的时间间隔t1以及最近一次采集的产品评论信息的最大滞后时间t2作为其优先级量化因子,分别对n、t1、t2做0~1区间的归一化操作,按公式3计算该产品此时的优先级p,重新放入待爬队列fetcher_queue。
e.HBase数据存储模块
该模块主要配合各模块的运行中对解析到的数据进行存储。数据传统的关系型数据库对海量数据存储已经表现出乏力,因此,本发明采用新型的非关系数据库HBase来存储产品的基本属性和产品的评论信息。
综上,本发明基于Storm的产品评论信息实时采集方法将传统的网络爬虫与开源分布式流处理框架-Storm相结合,动态调整采集时间间隔和采集调度策略,提高了实时采集的准确率和稳定性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (4)
1.基于Storm的产品评论信息实时采集方法,其特征在于:该方法在基于Storm平台的采集***进行,所述的采集***包括产品抓取模块、预处理模块、调度模块、更新检测模块、评论信息抓取模块、HBase数据存储模块、访问间隔调整模块;该方法包括:
a.产品抓取模块由时间触发服务器激活,周期性的从网络中抓取数据,获取产品的属性参数并存入到HBase数据存储模块中,同时检查新抓取到的产品Id是否已经存在待爬队列,如果已经存在则忽略,否则将其送到预处理模块进行预处理;
b.预处理模块根据产品Id初始化产品的属性参数,将初始化后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue;
c.调度模块不断的从fetcher_queue队列中读取数据,并将数据封装成Tuple发射到Storm集群中;
d.更新检测模块检查是否有新的评论产生,如果该产品有新评论产生,就将其送到评论信息抓取模块;
e.评论信息抓取模块对更新检测模块检测到有评论信息更新的产品进行分布式抓取;
f.访问间隔调整模块动态调整产品下一次采集的时间,包括以下步骤:
S1.获取产品历史最小更新频率fl、最大更新频率fu以及采集间隔interval;
S2.获取产品当前的采集次数nt、评论信息发生更新次数nc,计算出产品当前的更新频率fc=nc/nt;
S3.根据下列公式来调整产品的采集间隔interval,
next_interval=interval+Δt (公式1)
其中μ(x)是单位阶跃函数,
S4.通过产品当前的评论量n、最近一次评论信息产生的时间间隔t1以及最近一次采集的产品评论信息的最大滞后时间t2作为其优先级量化因子,分别对n、t1、t2做0~1区间的归一化操作,按下式计算该产品此时的优先级p,重新放入待爬队列fetcher_queue;
2.如权利要求1所述的基于Storm的产品评论信息实时采集方法,其特征在于,预处理模块对产品进行预处理的步骤如下:
S1.获取产品当前的评论总数和最近一次评论时间,根据评论总数和最近一次评论初始化其采集间隔interval;
S2.初始化产品的最大更新频率fu和最小更新频率fl,将产品Id经过url链接优化处理,然后将该产品的采集间隔和优化过的url链接放入频率初始化队列frequency_init_queue;只要frequency_init_queue不为空,频率初始化爬虫freCrawer即以该产品的采集间隔对该产品评论信息进行500次的采集,并记录评论信息发生更新的次数nc,采集结束后,计算其更新频率fc=nc/500,并用fc初始化产品的最大更新频率fu和最小更新频率fl;
S3.将预处理过后的产品Id经过url链接优化处理后放入待爬队列fetcher_queue。
3.如权利要求2所述的基于Storm的产品评论信息实时采集方法,其特征在于,更新检测模块获取产品最新的评论总数current_total,然后和产品的历史评论总数old_total对比,如果大于历史评论总数,则更新产品的历史评论总数、采集次数、评论信息发生更新次数以及最近一次采集时间,并将该产品发送给评论信息抓取模块进行评论信息采集,否则只更新产品的采集次数和最近一次采集时间。
4.如权利要求3所述的基于Storm的产品评论信息实时采集方法,其特征在于,所述的评论信息抓取模块分布式抓取的步骤如下:
S1.获取该产品的最近一次评论时间recent_comments_time;
S2.根据更新检测模块的检测的结果,下载相应页数的评论信息;
S3.对下载的评论信息做进一步的清洗,找出对产品做出的最近一次评论时间,并更新该产品最近一次评论时间;
S4.将抓取的新的产品评论信息发送到HBase数据存储模块进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610313091.3A CN106021391B (zh) | 2016-05-11 | 2016-05-11 | 基于Storm的产品评论信息实时采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610313091.3A CN106021391B (zh) | 2016-05-11 | 2016-05-11 | 基于Storm的产品评论信息实时采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021391A CN106021391A (zh) | 2016-10-12 |
CN106021391B true CN106021391B (zh) | 2019-06-21 |
Family
ID=57100199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610313091.3A Active CN106021391B (zh) | 2016-05-11 | 2016-05-11 | 基于Storm的产品评论信息实时采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021391B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614841B (zh) * | 2016-12-13 | 2021-09-07 | 北京国双科技有限公司 | 时间间隔的调整方法和装置 |
CN107169024A (zh) * | 2017-04-11 | 2017-09-15 | 微梦创科网络科技(中国)有限公司 | 一种兼容型的业务***及业务实现方法 |
CN109388748A (zh) * | 2018-09-26 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 一种评论信息的回复方法、存储介质和服务器 |
CN109857795A (zh) * | 2019-01-02 | 2019-06-07 | 拉卡拉支付股份有限公司 | 一种基于预测模型的数据表接入方法及*** |
CN113312526A (zh) * | 2021-06-29 | 2021-08-27 | 平安资产管理有限责任公司 | 网络信息动态采集方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207855A (zh) * | 2013-04-12 | 2013-07-17 | 广东工业大学 | 针对产品评论信息的细粒度情感分析***及方法 |
CN103678564A (zh) * | 2013-12-09 | 2014-03-26 | 国家计算机网络与信息安全管理中心 | 一种基于数据挖掘的互联网产品调研*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558630B2 (en) * | 2014-08-08 | 2020-02-11 | International Business Machines Corporation | Enhancing textual searches with executables |
-
2016
- 2016-05-11 CN CN201610313091.3A patent/CN106021391B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207855A (zh) * | 2013-04-12 | 2013-07-17 | 广东工业大学 | 针对产品评论信息的细粒度情感分析***及方法 |
CN103678564A (zh) * | 2013-12-09 | 2014-03-26 | 国家计算机网络与信息安全管理中心 | 一种基于数据挖掘的互联网产品调研*** |
Non-Patent Citations (2)
Title |
---|
Design of a priority based frequency regulated incremental crawler;Niraj Singhal,Ashutosh DixitDr.A.K.Sharma;《2010 International Journal of Computer Applications》;20101231;第1卷(第1期);第47-52页 |
基于Storm云平台的分布式网络爬虫技术研究与实现;付志鸿;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160415(第04期);第31-58页 |
Also Published As
Publication number | Publication date |
---|---|
CN106021391A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021391B (zh) | 基于Storm的产品评论信息实时采集方法 | |
Babar et al. | Urban data management system: Towards Big Data analytics for Internet of Things based smart urban environment using customized Hadoop | |
Song et al. | Environmental performance evaluation with big data: Theories and methods | |
US11107118B2 (en) | Management of the display of online ad content consistent with one or more performance objectives for a webpage and/or website | |
Polyvyanyy et al. | Process querying: Enabling business intelligence through query-based process analytics | |
Chen et al. | Carbon peak and its mitigation implications for China in the post-pandemic era | |
Liu et al. | Two-stage approach for reliable dynamic Web service composition | |
CN105741134A (zh) | 跨数据源的营销人群在市场营销中应用的方法及装置 | |
Feng et al. | [Retracted] Design and Simulation of Human Resource Allocation Model Based on Double‐Cycle Neural Network | |
CN108197737A (zh) | 一种建立医保住院费用预测模型的方法及*** | |
CN103999049A (zh) | 云供应加速器 | |
Peng et al. | Lifelong property price prediction: A case study for the toronto real estate market | |
CN102541920A (zh) | 联合基于用户和项目的协同过滤提高准确度的方法及装置 | |
CN105975440A (zh) | 一种基于图计算模型的矩阵分解并行化方法 | |
CN106776928A (zh) | 基于内存计算框架、融合社交环境及时空数据的位置推荐方法 | |
CN105631612A (zh) | 基于大数据的公职人员个人绩效及能力评估***及方法 | |
CN109635186A (zh) | 一种基于Lambda架构的实时推荐方法 | |
Gao et al. | An agent-based simulation system for evaluating gridding urban management strategies | |
Xia et al. | SW-BiLSTM: a Spark-based weighted BiLSTM model for traffic flow forecasting | |
CN103412903A (zh) | 基于兴趣对象预测的物联网实时搜索方法及*** | |
Wang et al. | Big data in telecommunication operators: data, platform and practices | |
CN103870452A (zh) | 数据推荐方法及*** | |
Zhou et al. | A comprehensive process similarity measure based on models and logs | |
CN107103403A (zh) | 一种用cio/cto社交网络预测科技公司业绩的方法 | |
Ni et al. | Mining organizational structure from workflow logs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |