一种视频领域相关的分布式微博数据抓取系统的制作方法

文档序号:6549974
一种视频领域相关的分布式微博数据抓取系统的制作方法
【专利摘要】本发明公开了一种视频领域相关的分布式微博数据抓取系统,该系统包括视频网站抓取子系统、微博用户名匹配子系统及微博数据抓取子系统,本发明使用对整个分布式系统中的抓取器节点进行管理和监控,在页面解析过程中,构建解析方法库,解决了因视频网站页面结构变化导致的完全重写解析器的问题。在更新控制中,使用视频热度模型来控制视频网页的解析频次,使用基于PageRank的微博用户影响力模型来控制微博用户数据抓取的频次。在微博数据抓取过程中引入了LDA模型构建微博用户的主题模型,从而对特定领域的微博用户进行过滤。本发明极大的提高了抓取海量视频领域微博数据的效率和稳定性。
【专利说明】一种视频领域相关的分布式微博数据抓取系统

【技术领域】
[0001] 本发明涉及数据挖掘【技术领域】,具体地说是一种视频领域相关的分布式微博数据 抓取系统。

【背景技术】
[0002] 随着社交网络的快速发展,类似微博的社交工具已经深入到人们生活的方方面 面,同时网络视频的发展也使得更多的人会在互联网上观看视频,两者结合起来的结果就 是出现这样的现象:越来越多的用户在视频网站上看完视频后会到微博上去发表与该视频 相关的博文。建立视频领域相关的微博数据集对于用户了解视频的内容和评价以及研究人 员针对视频领域的文本的研究分析会有很大的帮助。
[0003] 传统的爬虫的目标是尽可能地采集信息页面,并不关心采集的页面是否符合特定 的主题,同时对页面数据的更新也不会根据一些条件加以区分。这样一方面导致了大量的 系统资源和网络带宽浪费在抓取与主题无关的页面上,同时由于对所有页面一视同仁,而 没有考虑页面本身的更新频率,同样浪费了大量的资源。在海量数据的情况下,传统的分布 式爬虫虽然通过分布式解决了节点扩展的问题,但是对于抓取特定领域的数据没有给出有 效的方法,对页面的内容更新频率不加区分,也造成了大量重复页面的抓取,降低了分布式 为海量数据的抓取带来的效率上的提升。


【发明内容】

[0004] 本发明的目的是针对海量数据情况下特定领域微博数据抓取现有技术的缺陷而 提出的一种视频领域相关的分布式微博数据抓取系统,该系统可以快速有效的抓取到大量 的视频及与之相关的微博数据。
[0005] 实现本发明目的的具体技术方案是: 一种视频领域相关的分布式微博数据抓取系统,该系统包括视频网站抓取子系统、微 博用户名匹配子系统及微博数据抓取子系统,首先通过视频网站抓取子系统,得到与视频 相关视频、演员和导演名称实体名和播放量、评论量和收藏量的统计数据,通过分析这些统 计数据,得到视频的热门程度,针对不同的热门程度视频相关数据的抓取设置不同的抓取 频率;接着通过微博用户名匹配子系统将这些实体名与微博名进行匹配,得到微博用户种 子集;最后通过微博数据抓取子系统,在微博用户种子集的基础上,通过微博开放平台关注 关系API抓取与种子用户关系在三层以内的所有用户作为候选用户集合,同时通过微博用 户博文API获取用户博文和用户信息,一方面使用用户博文构建用户主体模型,对用户进 行主题过滤,留下与视频相关的用户作为最后的用户集合,另一方面使用微博用户相关的 统计信息计算用户影响力,针对不同影响力程度的用户设置不同的抓取频率。
[0006] 所述视频网站抓取子系统为一种可动态扩展节点与负载均衡的分布式系统,包括 服务器配置及抓取器结构,其中:所述服务器配置包括: 参数设置:通过一个配置服务器来提供抓取器节点的参数配置的设置,并在抓取器向 服务器发送参数配置请求时,根据抓取器的唯一编号(MAC_ID)返回该抓取器的配置信息; 节点扩展:当增加抓取节点时,配置服务器接收到该节点通过socket协议发送过来的 添加抓取节点的命令(ADD_CRAWLER),配置服务器向配置信息数据中添加一条记录,并将运 行的抓取器节点的总数加1 ; 异常监控:每个抓取器节点每隔一段时间(5分钟)向配置服务器发送表示此抓取器节 点正在正常运行的命令(RUNNING),配置服务器在抓取器节点状态列表中记录每个抓取器 节点的ID和对应的最后收到该节点发出表示正在正常运行的命令的时间;配置服务器每 隔一段时间(10分钟)会遍历抓取器节点状态列表,如果某个抓取器节点最后发出表示正在 正常运行的命令到当前时间的时间间隔大于10分钟,则表示该抓取器已出现异常,配置服 务器将运行的抓取器的总数减1 ; 负载均衡:各个抓取器完成的任务相同,抓取器上的负载指的是配置服务器分配到各 个抓取器上要抓取视频数量的多少;负载均衡涉及到两个阶段;第一个阶段为数据的分 发;数据分为两类:电影和电视剧;电视剧因为包含的集数多,因此要和电影独立开来;数 据分发的过程是将电影和电视的唯一编码(URL)通过一种均匀的散列函数映射到正在运行 的抓取器节点的MAC_ID上,从而抓取器在运行时能够通过MAC_ID来获取要抓取的电影和 电视剧列表;第二阶段,在一次的数据抓取完成之后,通过记录下的抓取器抓取的开始和结 束时间,计算所有抓取器完成一次抓取所需要的时间,当下次有新的需要抓取的视频加入 到列表中时,按照各个抓取器上次记录下的抓取一次所需时间的比例将这些新的电影和电 视剧分配到各个抓取器节点; 更新控制:针对视频热门程度的不同,采用不同的抓取频率;获取到所有视频的统计 数据之后,通过视频的播放量、评论量和收藏量计算视频的热门指数,按照热门指数将视频 分为三个等级,三个等级的更新频率分别为:1次/1天,1次/3天,1次/7天;使用更新控 制器来设置视频对应的链接在网页解析器下的解析频率;同时,更新控制器中热门指数的 计算频率设定为每周一次; 所述抓取器结构:每个抓取器节点包括链接抓取器、网页解析器、数据存储器和更新控 制器,其中: 所述链接抓取器,按照广度遍历算法对整个视频网站进行扫描,获取满足条件的网页 的链接,并将这些链接存储在链接数据库中;同时,为数据库中每个链接添加是否已被访问 的标识,如果某个链接已被其中一个节点访问过,则其他则跳过该节点,获取下一个链接, 如果此链接未被访问,则访问该页面并将该网页中包含的属于本网站的链接加入到链接数 据库中;所述满足要求的网页指含有导演、演员基本信息和视频播放、评分数据的网页; 所述网页解析器,从数据存储器中获取所有满足的链接,加载链接对应的网页,然后进 行网页的解析,得到所需的视频数据;构建解析方法库,如果链接没有标明解析的方法,则 遍历每一种方法解析每个链接,当链接被成功解析时,将该链接的解析方法标记为该方法, 如果已经标明了解析方法的链接在使用该方法解析失败时,则向解析方法库中添加新的解 析方法; 所述数据存储器,用于存储视频链接列表、视频基本信息和统计数据、解析方法库数 据; 所述更新控制器,根据数据库中存储的视频链接列表中每条链接的更新频率,使用定 时任务控制网页解析器解析网页的频率。
[0007] 所述微博用户名匹配子系统包括查找模块及过滤模块,其中: 所述查找模块,在视频网站抓取结束之后,得到与视频相关视频、演员和导演名称的实 体名,将这些视频名与海量的微博用户名进行匹配,找出对应的微博名;查找的过程按照条 件严格程度的不同分为三个步骤: 步骤1 :严格按照视频名、演员和导演名来查找微博用户; 步骤2 :使用一些关键词来给视频名、演员和导演名加上前缀和后缀,然后严格按照加 了前缀或后缀的词查找微博用户;其中,所述关键词为电影、电视剧、演员和导演; 步骤3 :使用视频名、演员和导演名进行模糊查找; 所述过滤模块,通过查找模块步骤2获取到的用户可以确定为视频领域的用户,其他 用户则主要基于主题过滤,通过主题模型构建所有用户的主题分布,选取与视频主题概率 大的用户作为种子用户;构建主题模型的过程如下: 步骤1 :获取查找到的所有用户的博文,将每个用户的所有博文作为一篇文档,使用 LDA算法进行训练,得到每个用户的主题分布; 步骤2 :选取每个用户主题分布下概率值最大的N个主题(N取5),采用语义相似度计 算这N个主题每个主题下的前Μ个词(M取20)与视频的语义相似度之和,如果这个值小于 一定的阈值则过滤掉该用户。
[0008] 所述微博用户名匹配子系统为一种可动态扩展节点的分布式系统,该系统包括服 务器配置及抓取器结构,其中,所述服务器配置包括: 参数设置:通过一个配置服务器来提供抓取器节点的参数配置的设置,并在抓取器向 服务器发送参数配置请求时,根据抓取器的唯一编号(MAC_ID)返回该抓取器的配置信息; 扩展节点:当增加抓取器节点时,配置服务器会接收到该节点通过socket协议发送过 来的添加抓取器节点的命令(ADD_CRAWLER),配置服务器向配置信息数据中添加一条记录, 并将总运行的抓取器的数量加1 ; 异常监控:每个抓取器节点每隔一段时间(5分钟)向配置服务器发送表示此抓取器节 点正在正常运行的命令(RUNNING);配置服务器在抓取器节点状态列表中记录每个抓取器 节点的ID和对应的最后收到该节点发出表示正在正常运行的命令的时间;配置服务器每 隔一段时间(10分钟)会遍历抓取器节点状态列表,如果某个抓取器节点最后发出表示正在 正常运行的命令到当前时间的时间间隔大于10分钟,则表示该抓取器已出现异常,配置服 务器将运行的抓取器的总数减1 ; 更新控制:采用依据用户活跃度和影响力的更新来控制抓取频率;用户活跃度的计算 基于用户原创微博和转发微博的发布频率,用户影响力的计算基于加入权重的PageRank 算法;按照用户影响力将所有用户分为三个级别,设定不同的更新频率,分别为:1次/1天, 1次/3天,1次/7天;将用户影响力的计算频率设为每周一次; 加入权重的PageRank算法,通过用户之间的粉丝和关注关系构建用户关系网,将微博 用户看作网络中的节点,用户之间的粉丝与关注关系看作节点之间的边;微博用户的影响 力计算通过改进的PageRank算法获取;改进的PageRank算法加入了用户自身因素的影响; 其中,所述用户自身因素的影响为用户微博数、用户粉丝数、用户的活跃度、用户微博的传 播能力、用户粉丝的影响力; 所述抓取器结构:每个抓取器节点包括微博用户集合抓取器、用户数据抓取器、数据存 储器、用户过滤器和更新控制器,其中: 所述微博用户集合抓取器,将微博用户名匹配子系统中得到的微博用户作为种子用 户,通过微博用户关系API获取这些用户关注的用户,并将这些新的用户加入到用户集合 中; 所述用户数据抓取器,首先从用户集合得到用户列表,使用HASH函数将用户ID映射到 〇到节点数目之间的整数,如果该整数为当前节点,这样每个用户的数据抓取就被分配到该 节点上,同时对该用户ID取余,将其分配到线程ID与余数相等的线程上进行抓取;接着,通 过微博API抓取用户的基本信息和博文数据; 所述数据存储器,进行用户集合、用户基本信息和博文数据的存储; 所述用户过滤器,过滤掉与视频领域相关性小于一定阈值的微博用户; 所述更新控制器,根据用户集合中存储每个用户的数据更新频率,使用定时器来设置 用户数据抓取器对每个用户的抓取频率。
[0009] 本发明使用视频热度模型来控制视频网页的解析频次,使用基于PageRank的微 博用户影响力模型来控制微博用户数据抓取的频次。同时引入了 LDA模型构建微博用户的 主题模型,对特定领域的微博用户进行过滤,有助于方便快捷的抓取到大量的与所给领域 相关的数据。

【专利附图】

【附图说明】
[0010] 图1为本发明结构框图; 图2为本发明实施例的视频网站抓取子系统结构框图; 图3为本发明实施例的微博用户名匹配子系统结构框图; 图4为本发明实施例的微博数据抓取子系统结构框图。 具体实施方案
[0011] 下面结合附图详细说明本发明的实施例。 实施例
[0012] 参阅图1,本发明包括视频网站抓取子系统、微博用户名匹配子系统及微博数据抓 取子系统。视频网站抓取子系统抓取视频网站上的视频数据,将这些数据存储到数据存储 器中,微博用户名匹配子系统从数据存储器的视频数据中抽取出包含视频名、导演名和演 员名的实体名,通过查找和过滤两个过程之后,得到微博用户种子集,最后微博数据抓取子 系统在微博用户种子集的基础上抓取更多的微博用户,并抓取这些用户的基本信息和博文 数据,对这些用户进行过滤后得到最终的用户集合,最终用户集合的微博数据即为本发明 所要抓取的视频领域微博数据。
[0013] 参阅图2,视频网站抓取子系统由两部分构成:视频网站抓取器和配置服务器中 的视频热度计算模块。视频网站抓取器包括链接抓取器,页面解析器、数据存储器和更新控 制器;链接抓取器根据给定的种子链接,采用广度遍历的方式对视频网站进行遍历,将遍历 得到的链接使用数据存储器存入到数据库中,如果某个链接被分布式系统中的某个抓取器 节点抓取过则将此URL标记为已抓取,其他抓取器节点不再获取这条URL。
[0014] 页面解析器加载通过HASH函数映射到此抓取节点上链接,对网页进行解析,提取 出视频基本信息和视频播放信息,通过数据存储器进行存储。
[0015] 配置服务器中的视频热度计算模块从数据库中查询出每个视频的播放数据包括 播放量、播放日增量、评论数、日增评论数、收藏数和日增评论数,通过这些数据计算视频的 热度,通过热度值的大小,分别给每部视频增加热度值分类字段,热度值在0到0. 3之间的 值为〇,热度值在〇. 3到0. 6之间的值为1,热度值在0. 7到1之间的值为2,,将通过数据存 储器对数据库中的数据进行更新。视频热度计算模块计算视频热度的频率为1次/15天。
[0016] 更新控制器获取视频热度值分类,按照如下规则控制页面解析器对页面的解析频 率,热度值标签〇、1、2对应的控制机制依此为:1次/1天,1次/3天,1次/7天。
[0017] 参阅图3,微博用户名匹配子系统属于配置服务器的一部分,首先从数据库中抽取 出视频的实体名集合,包括视频名、演员名和导演名。这些实体名通过微博用户名查找模块 找到符合规则的候选微博用户集合,再通过微博用户过滤模块过滤不属于视频领域的微博 用户。
[0018] 候选用户集模块通过三种方式来产生候选用户集。第一种方式按照实体名进行全 匹配查询,第二种方式为实体名加上前缀和后缀,按照修改后的实体名进行全匹配查询,第 三种方式按照实体名进行模糊匹配。
[0019] 微博用户过滤模块将每个用户的微博作为一个文档,使用所有文档训练LDA主题 模型,得到每个文档的主题分布即每个用户的主题分布。选取每个用户主题分布下概率值 最大的N个主题(N取5),采用语义相似度计算这N个主题每个主题下的前Μ个词与视频的 语义相似度(Μ取20)之和,如果这个值小于一定的阈值则过滤掉该用户。
[0020] 参阅图4,微博数据抓取子系统有两部分构成:微博抓取器和配置服务器中的微 博用户影响力计算模块。微博抓取器包括用户集合抓取器、用户数据抓取器、数据存储器、 用户过滤器和更新控制器。
[0021] 在微博种子用户集合的基础上,通过用户集合抓取器,获取用户的关注列表构建 新的微博用户集合,在获取了大量的微博用户之后,用户数据抓取器负责抓取用户基本信 息和博文数据。接着,通过博文数据构建LDA模型。对用户集合进行过滤,得到与视频领域 相关的微博用户。配置服务器的用户影响力计算模块使用PageRank算法计算微博用户的 影响力,按影响力的值将用户分为3类:活跃、一般和不活跃,通过数据存储器将每个用户 的影响力分类更新到数据库中。微博抓取器中的更新控制获取每个用户的影响力分类,以 此控制用户数据抓取器对用户基本信息和博文数据的抓取频率。
[0022] 微博种子用户集合中的用户的ID经过HASH函数映射后的值与当前微博抓取器的 ID相等用户,则该微博抓取器的用户集合抓取器通过微博API获取到当前用户的关注列表 用户ID集合,加入到微博用户集合中,并使用数据存储器进行存储。
[0023] 微博用户集合中的用户的ID经过HASH函数映射后的值与当前微博抓取器的ID 相等,则当前微博抓取器的用户数据抓取器通过微博API获取当前用户的基本信息和所有 博文数据,并通过数据存储器进行存储。
[0024] 配置服务器的用户影响力计算模块从数据库中获取用户的关注关系构建用户关 系图,边的两端为用户,边的权值通过用户粉丝数、用户微博数、用户转发和评论微博数等 计算得到,在用户关系图上使用PageRank算法得到用户影响力排名。影响力的计算的频率 设置为每周一次。
[0025] 更新控制器使用用户影响力的排名来对用户在用户数据抓取器的抓取频率进行 控制。按照用户影响力将所有用户分为三个级别,设定不同的更新频率,分别为:1次/1天, 1次/3天,1次/7天。
[0026] 用户数据抓取器抓取到的用户博文数据使用LDA主题模型构建用户主题分布。选 取每个用户主题分布下概率值最大的N个主题(N取5),采用语义相似度计算这N个主题每 个主题下的前Μ个词与视频的语义相似度(M取20)之和,如果这个值小于一定的阈值则过 滤掉该用户。
【权利要求】
1. 一种视频领域相关的分布式微博数据抓取系统,其特征在于该系统包括视频网站抓 取子系统、微博用户名匹配子系统及微博数据抓取子系统,首先通过视频网站抓取子系统, 得到与视频相关的视频、演员和导演名称实体名和播放量、评论量和收藏量的统计数据,通 过分析这些统计数据,得到视频的热门程度,针对不同的热门程度视频相关数据的抓取设 置不同的抓取频率;接着通过微博用户名匹配子系统将这些实体名与微博名进行匹配,得 到微博用户种子集;最后通过微博数据抓取子系统,在微博用户种子集的基础上,通过微博 开放平台关注关系API抓取与种子用户关系在三层以内的所有用户作为候选用户集合,接 着通过微博用户博文API获取用户博文和用户信息,一方面使用用户博文构建用户主体模 型,对用户进行主题过滤,留下与视频相关的用户作为最后的用户集合,另一方面使用微博 用户相关的统计信息计算用户影响力,针对不同影响力程度的用户设置不同的抓取频率。
2. 根据权利要求1所述的抓取系统,其特征在于所述视频网站抓取子系统为一种可动 态扩展节点与负载均衡的分布式系统,包括服务器配置及抓取器结构,其中:所述服务器配 置包括: 参数设置:通过一个配置服务器来提供抓取器节点的参数配置的设置,并在抓取器向 服务器发送参数配置请求时,根据抓取器的唯一编号MAC_ID返回该抓取器的配置信息; 节点扩展:当增加抓取节点时,配置服务器接收到该节点通过socket协议发送过来的 添加抓取节点的命令(ADD_CRAWLER),配置服务器向配置信息数据中添加一条记录,并将运 行的抓取器节点的总数加1 ; 异常监控:每个抓取器节点每隔一段时间向配置服务器发送表示此抓取器节点正在正 常运行的命令(RUNNING),配置服务器在抓取器节点状态列表中记录每个抓取器节点的ID 和对应的最后收到该节点发出表示正在正常运行的命令的时间;配置服务器每隔一段时间 会遍历抓取器节点状态列表,如果某个抓取器节点最后发出表示正在正常运行的命令到当 前时间的时间间隔大于10分钟,则表示该抓取器已出现异常,配置服务器将运行的抓取器 的总数减1 ; 负载均衡:各个抓取器完成的任务相同,抓取器上的负载指的是配置服务器分配到各 个抓取器上要抓取视频数量的多少;负载均衡涉及到两个阶段;第一个阶段为数据的分 发;数据分为两类:电影和电视剧;电视剧因为包含的集数多,因此要和电影独立开来;数 据分发的过程是将电影和电视的唯一编码(URL)通过一种均匀的散列函数映射到正在运行 的抓取器节点的MAC_ID上,从而抓取器在运行时能够通过MAC_ID来获取要抓取的电影和 电视剧列表;第二阶段,在一次的数据抓取完成之后,通过记录下的抓取器抓取的开始和结 束时间,计算所有抓取器完成一次抓取所需要的时间,当下次有新的需要抓取的视频加入 到列表中时,按照各个抓取器上次记录下的抓取一次所需时间的比例将这些新的电影和电 视剧分配到各个抓取器节点; 更新控制:针对视频热门程度的不同,采用不同的抓取频率;获取到所有视频的统计 数据之后,通过视频的播放量、评论量和收藏量计算视频的热门指数,按照热门指数将视频 分为三个等级,三个等级的更新频率分别为:1次/1天,1次/3天,1次/7天;使用更新控 制器来设置视频对应的链接在网页解析器下的解析频率;同时,更新控制器中热门指数的 计算频率设定为每周一次; 所述抓取器结构:每个抓取器节点包括链接抓取器、网页解析器、数据存储器和更新控 制器,其中: 所述链接抓取器,按照广度遍历算法对整个视频网站进行扫描,获取满足条件的网页 的链接,并将这些链接存储在链接数据库中;同时,为数据库中每个链接添加是否已被访问 的标识,如果某个链接已被其中一个节点访问过,则其他则跳过该节点,获取下一个链接, 如果此链接未被访问,则访问该页面并将该网页中包含的属于本网站的链接加入到链接数 据库中;所述满足要求的网页指含有导演、演员基本信息和视频播放、评分数据的网页; 所述网页解析器,从数据存储器中获取所有满足的链接,加载链接对应的网页,然后进 行网页的解析,得到所需的视频数据;构建解析方法库,如果链接没有标明解析的方法,则 遍历每一种方法解析每个链接,当链接被成功解析时,将该链接的解析方法标记为该方法, 如果已经标明了解析方法的链接在使用该方法解析失败时,则向解析方法库中添加新的解 析方法; 所述数据存储器,用于存储视频链接列表、视频基本信息和统计数据、解析方法库数 据; 所述更新控制器,根据数据库中存储的视频链接列表中每条链接的更新频率,使用定 时任务控制网页解析器解析网页的频率。
3. 根据权利要求1所述的抓取系统,其特征在于所述微博用户名匹配子系统包括查找 模块及过滤模块,其中: 所述查找模块,在视频网站抓取结束之后,得到与视频相关视频、演员和导演名称的实 体名,将这些视频名与海量的微博用户名进行匹配,找出对应的微博名;查找的过程按照条 件严格程度的不同分为三个步骤: 步骤1 :严格按照视频名、演员和导演名来查找微博用户; 步骤2 :使用一些关键词来给视频名、演员和导演名加上前缀和后缀,然后严格按照加 了前缀或后缀的词查找微博用户;其中,所述关键词为电影、电视剧、演员和导演; 步骤3 :使用视频名、演员和导演名进行模糊查找; 所述过滤模块,通过查找模块步骤2获取到的用户可以确定为视频领域的用户,其他 用户则主要基于主题过滤,通过主题模型构建所有用户的主题分布,选取与视频主题概率 大的用户作为种子用户;构建主题模型的过程如下: 步骤1 :获取查找到的所有用户的博文,将每个用户的所有博文作为一篇文档,使用 LDA算法进行训练,得到每个用户的主题分布; 步骤2 :选取每个用户主题分布下概率值最大的N个主题,采用语义相似度计算这N个 主题每个主题下的前Μ个词与视频的语义相似度之和,如果这个值小于一定的阈值则过滤 掉该用户。
4. 根据权利要求1所述的抓取系统,其特征在于所述微博用户名匹配子系统为一种可 动态扩展节点的分布式系统,该系统包括服务器配置及抓取器结构,其中,所述服务器配置 包括: 参数设置:通过一个配置服务器来提供抓取器节点的参数配置的设置,并在抓取器向 服务器发送参数配置请求时,根据抓取器的唯一编号MAC_ID返回该抓取器的配置信息; 扩展节点:当增加抓取器节点时,配置服务器会接收到该节点通过socket协议发送过 来的添加抓取器节点的命令(ADD_CRAWLER),配置服务器向配置信息数据中添加一条记录, 并将总运行的抓取器的数量加1 ; 异常监控:每个抓取器节点每隔一段时间向配置服务器发送表示此抓取器节点正在正 常运行的命令(RUNNING);配置服务器在抓取器节点状态列表中记录每个抓取器节点的ID 和对应的最后收到该节点发出表示正在正常运行的命令的时间;配置服务器每隔一段时间 会遍历抓取器节点状态列表,如果某个抓取器节点最后发出表示正在正常运行的命令到当 前时间的时间间隔大于10分钟,则表示该抓取器已出现异常,配置服务器将运行的抓取器 的总数减1 ; 更新控制:采用依据用户活跃度和影响力的更新来控制抓取频率;用户活跃度的计算 基于用户原创微博和转发微博的发布频率,用户影响力的计算基于加入权重的PageRank 算法;按照用户影响力将所有用户分为三个级别,设定不同的更新频率,分别为:1次/1天, 1次/3天,1次/7天;将用户影响力的计算频率设为每周一次; 加入权重的PageRank算法,通过用户之间的粉丝和关注关系构建用户关系网,将微博 用户看作网络中的节点,用户之间的粉丝与关注关系看作节点之间的边;微博用户的影响 力计算通过改进的PageRank算法获取;改进的PageRank算法加入了用户自身因素的影响; 其中,所述用户自身因素的影响为用户微博数、用户粉丝数、用户的活跃度、用户微博的传 播能力、用户粉丝的影响力; 所述抓取器结构:每个抓取器节点包括微博用户集合抓取器、用户数据抓取器、数据存 储器、用户过滤器和更新控制器,其中: 所述微博用户集合抓取器,将微博用户名匹配子系统中得到的微博用户作为种子用 户,通过微博用户关系API获取这些用户关注的用户,并将这些新的用户加入到用户集合 中; 所述用户数据抓取器,首先从用户集合得到用户列表,使用HASH函数将用户ID映射到 〇到节点数目之间的整数,如果该整数为当前节点,这样每个用户的数据抓取就被分配到该 节点上,同时对该用户ID取余,将其分配到线程ID与余数相等的线程上进行抓取;接着,通 过微博API抓取用户的基本信息和博文数据; 所述数据存储器,进行用户集合、用户基本信息和博文数据的存储; 所述用户过滤器,过滤掉与视频领域相关性小于一定阈值的微博用户; 所述更新控制器,根据用户集合中存储每个用户的数据更新频率,使用定时器来设置 用户数据抓取器对每个用户的抓取频率。
【文档编号】G06F17/30GK104063448SQ201410271438
【公开日】2014年9月24日 申请日期:2014年6月18日 优先权日:2014年6月18日
【发明者】贺樑, 向平, 陈昊, 倪敏杰, 陈琴 申请人:华东师范大学
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1