CN104615716B - 基于优先序列的分布式社交网络信息采集方法及系统 - Google Patents
基于优先序列的分布式社交网络信息采集方法及系统 Download PDFInfo
- Publication number
- CN104615716B CN104615716B CN201510061724.1A CN201510061724A CN104615716B CN 104615716 B CN104615716 B CN 104615716B CN 201510061724 A CN201510061724 A CN 201510061724A CN 104615716 B CN104615716 B CN 104615716B
- Authority
- CN
- China
- Prior art keywords
- social network
- network information
- priority
- token
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000000694 effects Effects 0.000 claims description 7
- 238000012913 prioritisation Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 238000003825 pressing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000097202 Rathbunia alamosensis Species 0.000 description 1
- 235000009776 Rathbunia alamosensis Nutrition 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于优先序列的分布式社交网络信息采集方法及系统,包括:获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配。通过本发明提供的方案,能够有效地对任务进行分配,提高社交网络信息采集的效率。
Description
技术领域
本发明涉及社交网络信息采集领域,尤其涉及一种基于优先序列的分布式社交网络信息采集方法及系统。
背景技术
社交网络的兴起,导致越来越多的用户参与进来。随着社交网络的蓬勃发展,用户在信息发布和传播的过程中起到越来越重要的作用,用户不再只是信息的被动接受者,同时也是信息资源的主动提供者和传播者。无论是国内还是国外,随着社交网络的日益普及,使用社交网络的用户也在逐渐增多。由于用户的积极参与,每天都会产生数以千万计的社交信息,这些信息具有重要的价值,比如它可以帮助我们分析热点事件,分析公共舆论的形成和发展过程等。而如何及时全面地获取这些信息,是我们进行社交网络分析的重要前提。
目前的社交网络信息获取过程主要分为两种:一种是通过网页模拟登录到社交网络平台,通过页面解析的方式获得社交网络信息;另一种方式是利用社交网络开放的API,获取社交网络信息。尽管通过上述手段都能对社交网络信息进行采集,但是,由于社交网络在不同的时间段可能有显著不同的发布量,比如在白天发布的信息量明显要比夜间发布的信息量要高得多,这样就有可能出现单次获取到的信息较少,甚至没有任何信息,导致资源的浪费。
发明内容
本发明提供一种基于优先序列的分布式社交网络信息采集方法及系统,用于解决现有的信息获取方案容易导致资源浪费的问题。
本发明的第一个方面是提供一种基于优先序列的分布式社交网络信息采集方法,包括:
获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;
根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;
按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配。
本发明的另一个方面是提供一种基于优先序列的分布式社交网络信息采集系统,包括:
获取模块,用于获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;
优先级排序模块,用于根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;
处理模块,用于按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配。
本发明提供的基于优先序列的分布式社交网络信息采集方法及系统,对任务列表中的各社交网络信息进行优先级排序,并根据各社交网络信息的优先级进行任务分配,从而能够有效地对任务进行分配,有效提高社交网络信息采集的效率。
附图说明
图1为本发明实施例一提供的基于优先序列的分布式社交网络信息采集方法的流程示意图;
图2为本发明实施例二提供的基于优先序列的分布式社交网络信息采集系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例一提供的基于优先序列的分布式社交网络信息采集方法的流程示意图,如图1所示,所述方法包括:
101、获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息。
目前的社交网络信息获取过程主要分为两种:一种是通过网页模拟登录到社交网络平台,通过页面解析的方式获得具体信息,但这种方式不能在短期内频繁地登录社交网络平台,否则会判定为恶意行为,导致IP或者账号被封的问题;另外,当社交网站的页面发生改动时,就必须修改相应的程序,否则无法获取到正确的信息;此外,因为这种方式是通过解析页面的方式来获取信息,而页面中大部分的信息是与社交网络信息无关的,这样每次都获取整个页面,势必会导致占用较大的网络带宽。
优选的,另一种是利用社交网络开放的API。大多的社交媒体平台采用OAuth授权的方式给予用户调用API的权利,但是在使用token时却有着一定的限制,除了访问次数的限制外,对于不同的API,token也有着不同的限制条件,这就导致在固定的时间内,抓取的资源有限,其中,token是每次调用API的一个必要参数。以新浪微博平台为例,表1展示了新浪微博平台对token使用频率的限制。
表1
具体的,获取token的过程主要包括:社交媒体开发者平台的登录,开发者信息的填写,邮箱验证,应用信息的填写和OAuth授权的过程。本实施例中,上述过程可以自动完成,从而节省时间。
针对token的使用频率有限,尽管可以通过获取大量的token在一定程度上解决该问题,但是终究不能无限扩大token资源的数量。因此,为了在有限的资源内,尽可能多地获取高质量的社交网络信息,就需要指定一些高质量的用户,也可安排一个合适的API调用方式。
相应的,为了有针对性地从高质量用户获取社交网络信息,进而建立所述任务列表,在101之前,所述方法还可以包括:
采集并将当前关注的用户最新发布的第二社交网络信息添加至所述任务列表;
获取对所述第二社交网络信息进行转发和评论的第一用户;
从所述第一用户中筛选出符合预设条件的第二用户,关注所述第二用户,并返回执行所述采集并将当前关注的用户发布的第二社交网络信息添加至所述任务列表的步骤。
实际应用中,为了实现本实施例中的步骤,提供一种基于优先序列的分布式社交媒体信息获取系统。该系统大致可以分为两部分,master和slave。Master主要提供5种服务:token服务、user服务、最新社交信息服务、repost服务和comment服务。Slave通过RMI与master通信,从master获取任务,并进行用户关注、获取最新社交信息、获取转发列表和获取评论列表,最后将更新的任务返回给master对应的服务。
具体的,建立任务列表的过程大概可以包括以下步骤:步骤1,初始选择并关注一部分用户;步骤2,定时获取他们发布的最新社交信息,将这些最新社交信息存放在任务列表中;步骤3,根据任务列表,master分配任务给工作节点,获取社交信息的转发列表和评论列表,将相关的社交信息存放在数据库中,并对任务列表中各社交信息的优先级进行更新,将更新过的任务列表返回给master;步骤4,对转发和评论列表中的用户采用一定的筛选策略,选择高质量用户,关注这些用户;步骤5,重复步骤2到4,使得系统周而复始地自动运行。
本实施方式中,在关注用户的方式上,可以选择不同的方式。例如,可以模拟登录网页来关注用户,或者也可以使用API来关注用户。可选的,为了节省token资源,可以采用模拟网页登录的方式来关注用户。
其中,高质量用户的筛选策略可以根据实际需求定制不同的策略。比如,想获取更多关于新闻媒体的社交信息,可以选择更多有关新闻媒体的用户去关注。再例如,也可以根据用户的评分值来筛选用户,其中,用户的评分值可以基于用户的类型,关注数,粉丝数和发布的社交信息数计算得到。
通过本实施方式,可以获取更多高质量的社交信息,随着关注用户量的增加,就能获得更多最新的社交信息。后续会获取这些社交信息的转发列表和评论列表,然后筛选出其中高质量的用户,加入待关注用户列表中,形成良性循环,通过这种方式,能在资源有限的情况,获得更全面的社交信息。
再相应的,为了采取合适的API调用方式,基于上述实施方式,在所述采集当前关注的用户最新发布的第二社交网络信息之前,所述方法还可以包括:
根据API调用指令,检测各token中是否存在当前未被使用,且未处于正在被重置状态的第一token;
所述采集当前关注的用户最新发布的第二社交网络信息,具体包括:
若存在第一token,则利用所述第一token调用API;
利用所述API,采集所述第二社交网络信息。
本实施方式中,在每个token的使用限制范围内,通过多个token轮换使用,能够有效节省所需的token资源,并且快速全面地获取社交信息。
相应的,为了实现对token状态的更新,所述利用所述第一token调用API之后,还包括:
将所述第一token的当前状态更新为被使用状态;
根据API结束指令,结束本次API调用,将所述第一token的当前状态更新为未被使用状态,并检测所述第一token当前累计被使用的次数是否达到预设的值,若是,则对所述可分配token进行重置。
其中,所述预设的值可以根据社交网络平台对token的使用限制确定,例如,某社交网络平台限制单个token的使用次数为150次/小时,则假若某token在一个小时内的使用次数达到150次,则需要对其进行重置。具体的,对token进行重置需要经过一定的时间,也就是说,只有当token未处于正在被重置的状态,例如,其当前不需被重置,或者已重置完成,则该token可以被使用。
实际应用中,可以将所有的token构成一个tokenPool,每一个token具有两个属性:isFree属性和isReset属性。isFree属性表示该token是否正在被使用,isReset属性表示该token是否处于正在被重置的状态。举例来说,由于大多社交媒体平台所要求使用的token是整点刷新状态的,相应的,可以利用后台线程每隔一个小时将tokenPool中的token的isReset属性重置为true,表示token已经被重置过了,可以被再次使用。当一个token正在被某个线程使用时,将其isFree属性置为false,即表示该token当前正在被使用。
102、根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高。
具体的,在对任务列表中的社交网络信息进行初次任务分配时,可以基于各社交网络信息的发布时间进行优先级排序,也就是说,越早发布的社交网络信息越先进行分配。
可选的,在对任务列表中的社交网络信息进行初次任务分配之后,可以定时对当前各社交网络信息的优先级进行更新和调整。具体的,可以根据各社交网络信息的紧迫程度进行优先级调整,进一步的,所述紧迫程度可以通过被转发次数来体现。相应的,在102之后,所述方法还可以包括:
按照第二周期,周期性地根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序,其中,被转发的次数越高则优先级越高。
进一步的,对于紧迫程度相同的社交网络信息,可以根据各社交网络信息上次被分配的时间,对其进行进一步的优先级排序。相应的,所述根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序之后,还包括:
针对当前优先级相同的第一社交网络信息,根据所述第一社交网络信息上次被分配的时间,对所述第一社交网络信息进行优先级排序,其中,上次被分配的时间越早则优先级越高。
103、按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配。
可选的,所述按照第一周期,周期性地根据当前所述各社交网络信息的优先级,进行任务分配之后,还包括:
结束本次任务分配,并记录本次任务分配中,最后被分配的社交网络信息的标识;
所述获取本次任务分配的任务列表,具体包括:
根据当前记录的上次任务分配中,最后被分配的社交网络信息的标识,获取本次任务分配的任务列表,所述任务列表包括在上次任务分配中,最后被分配的社交网络信息之后发布的社交网络信息。
其中,所述第一周期与所述第二周期可以相同也可以不同,本实施例在此不对其进行限制。通过本实施方式,能够增量式地获取社交信息的转发列表。
实际应用中,可以采用master/slave的分布式结构,master节点作为任务调度的控制器,负责任务的分配和回收,同时控制着每一条任务的生命周期。首先说明下任务的格式如下:
(priority-lastVisitedTime-updateTime-mid,since_id)
具体的,其采用key-value键值对的形式,存储在内存数据库BerkeleyDB中,其中,priority表示是每一条任务的优先级,lastVisitedTime表示是任务上次被分配的时间,两者合起来就是基于优先序列策略的重要体现。其中,Priority一共可以分为6级,具体的,0表示优先级最高,5表示优先级最低。优先级越高,越优先分配。在基于紧迫程度进行优先级排序后,若多个任务处在同一优先级,则lastVisitedTime越小,越优先分配,其表示该条任务距离本次任务分配的时间较长,应被优先分配。此外,Key值中的另外两个参数,其中的updateTime表示任务上次更新的时间,例如,该社交信息在上次被访问时,有了新的转发或者评论。mid为具体需要抓取的社交信息。since_id用于实现增量式获取社交信息。
工作节点获取到任务后,首先将任务复制到backList中,然后执行每一条任务。在执行每一条任务的时候:若抓取的社交信息不为空,将backList中对应任务中的since_id更新为最新获取的社交信息的id,同时若获取的转发数(或者评论数)count/100大于1,更新priority=priority-count/100(最小为0),否则保持priority不变,同时将lastVisitedTime置为1,updateTime修改为any。最终的任务格式为:(新priority-1-any-mid,新since_id);若抓取的社交信息为空,更新priority=priority+1,同时将lastVisitedTime置为0,最终的任务格式为:(新priority-0-updateTime-mid,since_id)。任务执行完毕后,工作节点将backList返回给master,准备下一次的任务分配。
Master根据回收任务中的key值中的第二个参数修改任务:若为1:对应的是在工作节点上获取的社交信息不为空,将key值的第二、三个参数同时修改为currentTime;若为0:对应的是在工作节点上获取的社交信息为空,将key值的第二个参数修改为currentTime;将修改过的任务重新存放在任务列表中。
需要说明的是,在工作节点采集社交信息的时候,可能会出现社交信息被删除的情况,这种情况下工作节点会把对应的任务删除掉,不会返回给master;任务中关于时间的修改都是在master节点完成的,这是为了防止每个工作节点上时间不一致的问题;在master节点上,有一个后台线程定时扫描任务列表,如果当前时间减去updateTime的值大于一个阈值时,表示该条社交信息已经没有可以采集的信息了,就将它从任务列表中删除。
相比之下,传统的采集系统在获取转发列表时,往往只是保存了转发信息,而无法得到原创与转发、转发与转发之间的关系,导致无法绘制原创社交信息的转发树。基于网页登录的社交媒体信息采集系统虽然可以通过深度优先的遍历方式构建转发树,但是当有新的转发时,需要从头获取所有的转发列表,这样会导致时间和资源的严重浪费。本实施例中,since_id表示的是上次获取到最新转发信息的id。这样在下次再次获取到该条任务时,会以since_id作为参数,只获取发布比since_id晚的信息,这样就不会获取重复的信息,避免了资源的浪费。同时再次将since_id更新为本次获取到的最新信息的id。
具体的,在使用API获取转发列表时,可以将转发社交信息分为两种:一种是直接转发,即直接转发了原创;一种是多级转发,即再次转发了转发的社交信息。在使用API返回的字段中,直接转发和多级转发不同的地方在于:直接转发只有rootMid,没有Pid,而多级转发既有rootMid,又有Pid。因此,我们可以根据这个差别判断转发信息是直接转发,还是多级转发,同时若是多级转发,可以根据Pid找到自己的上次转发节点,从而可以构建完整的转发树。
基于上述实施方式,可以实现当社交信息有新的转发时,可以直接在当前转发树中添加节点,而不需要重新抓取所有的转发列表。从而实现增量式地构建转发树。
此外,在实际应用中,为了尽量使用较少的电脑,同时也要保证有足够多的IP能够访问到社交网络平台的服务器,所以在实际的部署过程中,使用可KVM(Kernel-basedVirtual Machine)虚拟机技术。KVM技术可以在一台电脑上开启多个虚拟机,而且占用的磁盘空间较小,利用桥接的方式使虚拟机处于不同的vlan中,这样就可以在使用少量电脑的情况下,使用多个不同的IP,增加并发量。
本实施例提供的基于优先序列的分布式社交网络信息采集方法,对任务列表中的各社交网络信息进行优先级排序,并根据各社交网络信息的优先级进行任务分配,从而能够有效地对任务进行分配,有效提高社交网络信息采集的效率。并且,通过本实施例提供的方案,能够及时获取到最新发布的社交信息,同时能实时跟踪获取到社交信息的转发信息,同时保存社交信息间的转发关系,从而可以重现社交网络的转发树。
图2为本发明实施例二提供的基于优先序列的分布式社交网络信息采集系统的结构示意图,如图2所示,所述系统包括:
获取模块21,用于获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;
优先级排序模块22,用于根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;
处理模块23,用于按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配。
实际应用中,该系统大致可以分为两部分,master和slave。Master主要提供5种服务:token服务、user服务、最新社交信息服务、repost服务和comment服务。Slave通过RMI与master通信,从master获取任务,并进行用户关注、获取最新社交信息、获取转发列表和获取评论列表,最后将更新的任务返回给master对应的服务。
针对token的使用频率有限,为了在有限的资源内,尽可能多地获取高质量的社交网络信息,就需要指定一些高质量的用户,也可安排一个合适的API调用方式。
相应的,为了有针对性地从高质量用户获取社交网络信息,进而建立所述任务列表,所述系统还可以包括:
采集模块,用于采集并将当前关注的用户最新发布的第二社交网络信息添加至所述任务列表;
用户分析模块,用于获取对所述第二社交网络信息进行转发和评论的第一用户;
用户筛选模块,用于从所述第一用户中筛选出符合预设条件的第二用户,关注所述第二用户,并指示所述采集模块执行所述采集并将当前关注的用户发布的第二社交网络信息添加至所述任务列表的步骤。
本实施方式中,在关注用户的方式上,可以选择不同的方式。例如,可以模拟登录网页来关注用户,或者也可以使用API来关注用户。可选的,为了节省token资源,可以采用模拟网页登录的方式来关注用户。其中,高质量用户的筛选策略可以根据实际需求定制不同的策略。
通过本实施方式,可以获取更多高质量的社交信息,随着关注用户量的增加,就能获得更多最新的社交信息。后续会获取这些社交信息的转发列表和评论列表,然后筛选出其中高质量的用户,加入待关注用户列表中,形成良性循环,通过这种方式,能在资源有限的情况,获得更全面的社交信息。
再相应的,为了采取合适的API调用方式,基于上述实施方式,所述系统还可以包括:
检测模块,用于在所述采集模块采集当前关注的用户最新发布的第二社交网络信息之前,根据API调用指令,检测各token中是否存在当前未被使用,且未处于正在被重置状态的第一token;相应的,
采集模块21,具体用于若存在第一token,则利用所述第一token调用API;利用所述API,采集所述第二社交网络信息。
本实施方式中,在每个token的使用限制范围内,通过多个token轮换使用,能够有效节省所需的token资源,并且快速全面地获取社交信息。
相应的,为了实现对token状态的更新,所述系统还包括:
状态更新模块,用于在所述采集模块利用所述第一token调用API之后,将所述第一token的当前状态更新为被使用状态;
所述状态更新模块,还用于根据API结束指令,结束本次API调用,将所述第一token的当前状态更新为未被使用状态,并检测所述第一token当前累计被使用的次数是否达到预设的值,若是,则对所述可分配token进行重置。
其中,所述预设的值可以根据社交网络平台对token的使用限制确定。具体的,对token进行重置需要经过一定的时间,也就是说,只有当token未处于正在被重置的状态,例如,其当前不需被重置,或者已重置完成,则该token可以被使用。
具体的,在对任务列表中的社交网络信息进行初次任务分配时,可以基于各社交网络信息的发布时间进行优先级排序,也就是说,越早发布的社交网络信息越先进行分配。
可选的,在对任务列表中的社交网络信息进行初次任务分配之后,可以定时对当前各社交网络信息的优先级进行更新和调整。具体的,可以根据各社交网络信息的紧迫程度进行优先级调整,进一步的,所述紧迫程度可以通过被转发次数来体现。相应的,优先级排序模块22,还用于在所述根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序之后,按照第二周期,周期性地根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序,其中,被转发的次数越高则优先级越高。
进一步的,对于紧迫程度相同的社交网络信息,可以根据各社交网络信息上次被分配的时间,对其进行进一步的优先级排序。相应的,优先级排序模块22,还用于在所述根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序之后,针对当前优先级相同的第一社交网络信息,根据所述第一社交网络信息上次被分配的时间,对所述第一社交网络信息进行优先级排序,其中,上次被分配的时间越早则优先级越高。
可选的,处理模块23,还用于在按照第一周期,周期性地根据当前所述各社交网络信息的优先级,进行任务分配之后,结束本次任务分配,并记录本次任务分配中,最后被分配的社交网络信息的标识;相应的,
获取模块21,具体用于根据当前记录的上次任务分配中,最后被分配的社交网络信息的标识,获取本次任务分配的任务列表,所述任务列表包括在上次任务分配中,最后被分配的社交网络信息之后发布的社交网络信息。
通过本实施方式,能够增量式地获取社交信息的转发列表。基于上述实施方式,可以实现当社交信息有新的转发时,可以直接在当前转发树中添加节点,而不需要重新抓取所有的转发列表。从而实现增量式地构建转发树。
此外,在实际应用中,为了尽量使用较少的电脑,同时也要保证有足够多的IP能够访问到社交网络平台的服务器,所以在实际的部署过程中,使用可KVM(Kernel-basedVirtual Machine)虚拟机技术。KVM技术可以在一台电脑上开启多个虚拟机,而且占用的磁盘空间较小,利用桥接的方式使虚拟机处于不同的vlan中,这样就可以在使用少量电脑的情况下,使用多个不同的IP,增加并发量。
本实施例提供的基于优先序列的分布式社交网络信息采集系统,对任务列表中的各社交网络信息进行优先级排序,并根据各社交网络信息的优先级进行任务分配,从而能够有效地对任务进行分配,有效提高社交网络信息采集的效率。并且,通过本实施例提供的方案,能够及时获取到最新发布的社交信息,同时能实时跟踪获取到社交信息的转发信息,同时保存社交信息间的转发关系,从而可以重现社交网络的转发树。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种基于优先序列的分布式社交网络信息采集方法,其特征在于,包括:
获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;
根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;
按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配;
其中,所述获取本次任务分配的任务列表之前,还包括:
采集并将当前关注的用户最新发布的第二社交网络信息添加至所述任务列表;
获取对所述第二社交网络信息进行转发和评论的第一用户;
从所述第一用户中筛选出符合预设条件的第二用户,关注所述第二用户,并返回执行所述采集并将当前关注的用户发布的第二社交网络信息添加至所述任务列表的步骤;
其中,所述采集当前关注的用户最新发布的第二社交网络信息之前,还包括:
根据API调用指令,检测各token中是否存在当前未被使用,且未处于正在被重置状态的第一token;
所述采集当前关注的用户最新发布的第二社交网络信息,具体包括:
若存在第一token,则利用所述第一token调用API;
利用所述API,采集所述第二社交网络信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序之后,还包括:
按照第二周期,周期性地根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序,其中,被转发的次数越高则优先级越高。
3.根据权利要求2所述的方法,其特征在于,所述根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序之后,还包括:
针对当前优先级相同的第一社交网络信息,根据所述第一社交网络信息上次被分配的时间,对所述第一社交网络信息进行优先级排序,其中,上次被分配的时间越早则优先级越高。
4.根据权利要求1所述的方法,其特征在于,所述按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配之后,还包括:
结束本次任务分配,并记录本次任务分配中,最后被分配的社交网络信息的标识;
所述获取本次任务分配的任务列表,具体包括:
根据当前记录的上次任务分配中,最后被分配的社交网络信息的标识,获取本次任务分配的任务列表,所述任务列表包括在上次任务分配中,最后被分配的社交网络信息之后发布的社交网络信息。
5.根据权利要求1所述的方法,其特征在于,所述利用所述第一token调用API之后,还包括:
将所述第一token的当前状态更新为被使用状态;
根据API结束指令,结束本次API调用,将所述第一token的当前状态更新为未被使用状态,并检测所述第一token当前累计被使用的次数是否达到预设的值,若是,则对所述第一token进行重置。
6.一种基于优先序列的分布式社交网络信息采集系统,其特征在于,包括:
获取模块,用于获取本次任务分配的任务列表,所述任务列表中包括各社交网络信息;
优先级排序模块,用于根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序,其中,发布时间越早则优先级越高;
处理模块,用于按照第一周期,根据当前所述各社交网络信息的优先级,周期性地进行任务分配;
所述系统还包括:采集模块、用户分析模块、用户筛选模块;
所述采集模块,用于采集并将当前关注的用户最新发布的第二社交网络信息添加至所述任务列表;
所述用户分析模块,用于获取对所述第二社交网络信息进行转发和评论的第一用户;
所述用户筛选模块,用于从所述第一用户中筛选出符合预设条件的第二用户,关注所述第二用户,并指示所述采集模块执行所述采集并将当前关注的用户发布的第二社交网络信息添加至所述任务列表的步骤;
所述系统还包括:检测模块;
所述检测模块,用于在所述采集模块采集当前关注的用户最新发布的第二社交网络信息之前,根据API调用指令,检测各token中是否存在当前未被使用,且未处于正在被重置状态的第一token;
相应的,所述采集模块,具体还用于若存在第一token,则利用所述第一token调用API;利用所述API,采集所述第二社交网络信息。
7.根据权利要求6所述的系统,其特征在于,
所述优先级排序模块,还用于在所述根据所述各社交网络信息的发布时间,对所述各社交网络信息进行优先级排序之后,按照第二周期,周期性地根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序,其中,被转发的次数越高则优先级越高。
8.根据权利要求7所述的系统,其特征在于,
所述优先级排序模块,还用于在所述根据所述各社交网络信息在本次周期内被转发的次数,对所述各社交网络信息进行优先级排序之后,针对当前优先级相同的第一社交网络信息,根据所述第一社交网络信息上次被分配的时间,对所述第一社交网络信息进行优先级排序,其中,上次被分配的时间越早则优先级越高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061724.1A CN104615716B (zh) | 2015-02-05 | 2015-02-05 | 基于优先序列的分布式社交网络信息采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061724.1A CN104615716B (zh) | 2015-02-05 | 2015-02-05 | 基于优先序列的分布式社交网络信息采集方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615716A CN104615716A (zh) | 2015-05-13 |
CN104615716B true CN104615716B (zh) | 2017-12-01 |
Family
ID=53150158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510061724.1A Active CN104615716B (zh) | 2015-02-05 | 2015-02-05 | 基于优先序列的分布式社交网络信息采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615716B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095365A (zh) * | 2015-06-26 | 2015-11-25 | 北京奇虎科技有限公司 | 一种信息流数据的处理方法和装置 |
CN106201715A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇艺世纪科技有限公司 | 一种任务调度方法和装置 |
CN107480297A (zh) * | 2017-08-30 | 2017-12-15 | 福建中金在线信息科技有限公司 | 一种文章收录方法及装置 |
CN109978534A (zh) * | 2017-12-25 | 2019-07-05 | 上海瀚决网络科技有限公司 | 社交平台的社交信息排序显示方法和虚拟货币分配方法 |
CN109460299B (zh) * | 2018-11-08 | 2022-04-15 | 中山大学 | 一种分布式并行多源社交网络数据采集系统和方法 |
CN116680051B (zh) * | 2023-06-01 | 2024-04-30 | 深圳千岸科技股份有限公司 | 任务调度方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063477A (zh) * | 2010-12-13 | 2011-05-18 | 百度在线网络技术(北京)有限公司 | 一种网站数据抓取装置及方法 |
CN102968494A (zh) * | 2012-11-28 | 2013-03-13 | 青岛海信网络科技股份有限公司 | 通过微博采集交通信息的系统及方法 |
-
2015
- 2015-02-05 CN CN201510061724.1A patent/CN104615716B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063477A (zh) * | 2010-12-13 | 2011-05-18 | 百度在线网络技术(北京)有限公司 | 一种网站数据抓取装置及方法 |
CN102968494A (zh) * | 2012-11-28 | 2013-03-13 | 青岛海信网络科技股份有限公司 | 通过微博采集交通信息的系统及方法 |
Non-Patent Citations (2)
Title |
---|
微博数据提取及话题检测方法研究;邱洋;《中国优秀硕士学位论文全文数据库》;20130815(第2013年08期);全文 * |
面向微博的数据采集和分析系统的设计与实现;冯典;《中国优秀硕士学位论文全文数据库》;20131115(第2013年11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104615716A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104615716B (zh) | 基于优先序列的分布式社交网络信息采集方法及系统 | |
CN109933701A (zh) | 一种基于多策略融合的微博数据获取方法 | |
CN108055144A (zh) | 一种网络设备的监控方法及系统 | |
CN106445894B (zh) | 新媒体智能在线编辑方法、装置及网络信息发布平台 | |
CN102857493A (zh) | 内容过滤方法和装置 | |
CN108762867A (zh) | 悬浮菜单设置方法和装置 | |
CN104394211A (zh) | 一种基于Hadoop用户行为分析系统设计与实现方法 | |
CN110719194B (zh) | 一种网络数据的分析方法及装置 | |
CN105550248B (zh) | 用户信息挖掘方法及装置 | |
CN103716282A (zh) | 一种修正ip库的方法和系统 | |
CN104869155A (zh) | 数据审计方法及装置 | |
CN103150163A (zh) | 一种基于MapReduce模型的并行关联方法 | |
CN104468752A (zh) | 一种提高云计算资源利用率的方法及系统 | |
CN102624544B (zh) | 监控任务的创建方法及装置 | |
CN110009416A (zh) | 一种基于大数据清洗和ai精准营销的系统 | |
CN107908645A (zh) | 一种基于渗流分析的在线社交平台谣言传播的免疫方法 | |
CN106657047A (zh) | 一种网络访问关系的生成方法及装置 | |
CN104092660B (zh) | 一种访问网络站点的方法 | |
CN102769867B (zh) | 网络接入方法 | |
CN103995886B (zh) | 一种多维度产品设计知识推送框架与构建方法 | |
CN107493315A (zh) | 一种行为数据的收集方法、资源服务器及存储介质 | |
CN116821359A (zh) | 一种基于知识图谱的场景资源关系构建方法和装置 | |
CN114553917B (zh) | 一种基于区块链的网络智能治理方法 | |
CN108011730A (zh) | 一种网管系统中环网资源自动变更的方法及装置 | |
CN106372165A (zh) | 一种基于totem协议的集群的leader选取方法及装置 |
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 |