CN106384292A - 社交网络用户关系采集***及方法 - Google Patents
社交网络用户关系采集***及方法 Download PDFInfo
- Publication number
- CN106384292A CN106384292A CN201610823149.9A CN201610823149A CN106384292A CN 106384292 A CN106384292 A CN 106384292A CN 201610823149 A CN201610823149 A CN 201610823149A CN 106384292 A CN106384292 A CN 106384292A
- Authority
- CN
- China
- Prior art keywords
- queue
- user
- bean vermicelli
- concern
- list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000009193 crawling Effects 0.000 claims abstract description 41
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 152
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 152
- 241000270322 Lepidosauria Species 0.000 claims description 24
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 9
- 239000000843 powder Substances 0.000 claims description 6
- 238000007405 data analysis Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 244000097202 Rathbunia alamosensis Species 0.000 description 1
- 235000009776 Rathbunia alamosensis Nutrition 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种社交网络用户关系采集***与方法,该***包括:分布式爬虫模块与任务队列模块。其中,任务队列模块包含爬取优先级依次增加的Super队列、Normal队列、Big队列。分布式爬虫模块用于将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,并按照所述爬取优先级爬取用户关系数据。本发明根据关系网规模将任务进行等级划分,不同等级的任务按照不同的执行优先级爬取,这样不仅具有控制爬取层数的功能,还可以保证关系网爬取时能够快速收敛。
Description
技术领域
本发明涉及社交网络服务SNS领域,尤其涉及一种社交网络用户关系采集***及方法。
背景技术
社交网络是一种通过关注机制分享实时消息的广播式平台,如微博、twitter等,它是目前最受欢迎的网络交流平台之一,由于其易操作、传播快等特点,受到广大网民用户的喜爱,人们通过它能够了解世界各地的讯息。它以网络为载体,致力于促进人与人之间的交流,拓宽人们的交际关系圈。
越来越多的研究人员想要快速获取用户间的网络连接关系,以此来挖掘网络水军、恶意用户以及利用网络拓扑特征进行性别、年龄的预测。有些数据研究任务只需要获取部分关系网数据,通过广度优先遍历方法采集社交网络用户关系网,随时控制遍历层数,获取需要的数据集。由于众多的数据分析工作都需要建立在社交网络用户关系网的基础上,所以设计一种快速采集社交网络用户关系网的方法至关重要。
目前,对于社交网络用户关系网的采集方法主要是基于广度优先遍历的采集方法,采用该方法,可以控制社交网络用户关系网的爬取层数。但由于某些用户关系网数量巨大,如新闻媒体、企业公众号、社会名人等,他们的粉丝数数以万计,直接采用广度优先遍历方法进行关系网的爬取时,速度将非常缓慢。如某明星的新浪微博粉丝数为2030万,若某一普通用户关注了该明星,则在爬取该普通用户关系网时,该明星就成了制约爬取速度的主要因素,这将直接导致爬取关系网时不能快速收敛。
因此,亟需一种能够快速收敛的社交网络用户关系网采集方法来解决以上问题。
发明内容
本发明提供一种社交网络用户关系采集***及方法,根据关系网规模将任务进行等级划分,不同等级的任务按照不同的执行优先级爬取,这样不仅具有控制爬取层数的功能,还可以保证关系网爬取时能够快速收敛。
本发明一方面提供一种社交网络用户关系采集***,包括:分布式爬虫模块与任务队列模块;其中,任务队列模块包含爬取优先级依次增加的Super队列、Normal队列、Big队列;分布式爬虫模块用于将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,并按照所述爬取优先级爬取用户关系数据。
优选的,分布式爬虫模块包括主控结点与数据获取结点;任务队列模块还包含Info队列;以及所述将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,具体为:主控结点将用户ID存放在Info队列,控制数据获取结点爬取各用户的粉丝数与关注数;将粉丝数小于第一粉丝阈值的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间的用户ID存放在第一Big队列;将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间的用户ID存放在第二Big队列。
优选的,所述按照所述爬取优先级爬取用户关系数据具体为:主控结点读取各队列中的用户ID并分发于数据获取结点进行爬取:首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取;和/或首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。
优选的,所述数据获取结点包括:用于爬取用户粉丝ID的第一结点、用于爬取用户粉丝信息的第二结点、用于爬取用户关注人ID的第三结点、用于爬取用户关注人信息的第四结点、用于爬取用户信息的第五结点;以及所述***还包括:用户关系数据库,用于存储分布式爬虫模块爬取的用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息;其中,用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
优选的,分布式爬虫模块还用于在用户关系数据库中判断用户与其粉丝列表中的粉丝ID是否仍存在关系,若否,则将该粉丝ID移出粉丝列表,并获取用户最新增加的预设数量的粉丝ID,将其加入所述粉丝列表,同时更新所述预设数量的粉丝ID的关注列表;在用户关系数据库中判断用户与其关注列表中的关注人ID是否仍存在关系,若否,则将该关注人ID移出关注列表,并获取用户最新增加的预设数量的关注人ID,将其加入所述关注列表,同时更新所述预设数量的关注人ID的粉丝列表。
优选的,数据获取结点通过调用API服务器提供的相应API接口爬取数据;以及所述***还包括:数据备份模块,用于存储每次调用API接口的返回结果,作为爬取的原始数据的备份。
本发明另一方面提供一种社交网络用户关系采集方法,包括步骤:
S1.将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列及Super队列;
S2.按照预设优先级策略爬取用户关系数据;其中,预设优先级策略为:Super队列、Normal队列、Big队列的优先级依次增加。
优选的,步骤S1具体为:爬取各用户ID的粉丝数与关注数;将粉丝数小于第一粉丝阈值的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间的用户ID存放在第一Big队列;将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间的用户ID存放在第二Big队列;以及步骤S2具体为:读取各队列中的用户ID并进行爬取:首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取;和/或首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。
优选的,在步骤S2之后,所述方法还包括:将所述用户关系数据保存;其中,所述用户关系数据包括:用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息;以及用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
优选的,在将所述用户关系数据保存之后,所述方法还包括:判断用户与其粉丝列表中的粉丝ID是否仍存在关系;若否,则将该粉丝ID移出粉丝列表,并获取用户最新增加的预设数量的粉丝ID,将其加入所述粉丝列表,同时更新所述预设数量的粉丝ID的关注列表;和/或判断用户与其关注列表中的关注人ID是否仍存在关系;若否,则将该关注人ID移出关注列表,并获取用户最新增加的预设数量的关注人ID,将其加入所述关注列表,同时更新所述预设数量的关注人ID的粉丝列表;以及所述方法还包括:调用API接口爬取数据;存储每次调用API接口的返回结果,作为爬取的原始数据的备份。
由以上技术方案可知,本发明对用户关系网采集时采用执行优先级不同的分布式爬取方法,能够避开关系网规模极大的用户,如新闻媒体、企业公众号、社会名人等,实现采集***的快速收敛。同时,对获得的用户关系数据即时存储并更新,对采集的原始数据进行备份,为后期的数据分析提供有力支持。
附图说明
图1是本发明实施例的社交网络用户关系采集***的第一结构示意图;
图2是本发明实施例的社交网络用户关系采集***的第二结构示意图;
图3是本发明实施例的关系网抽取模块示意图;
图4是本发明实施例的关系网更新模块示意图;
图5是本发明实施例的社交网络用户关系采集***部署图;
图6是本发明实施例的社交网络用户关系采集方法示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本发明的发明人考虑到,采用广度优先遍历方法进行关系网的爬取时,由于某些用户关系网规模巨大,如新闻媒体、企业公众号、社会名人等,其粉丝数以万计,对其进行爬取时速度非常缓慢,导致***无法快速收敛。
于是,本发明的发明人针对性地开发了关系网抽取算法,根据关系网规模大小将任务存入执行优先级不同的任务队列。爬取时,新闻媒体、企业公众号等用户处于优先级较低的队列而被避开,由此实现了***的快速收敛。同时,本发明的发明人开发相应算法实现了爬取数据的即时存储更新及原始采集数据的备份,为后期的数据分析与挖掘提供有力支持。
可以理解,本发明所使用的术语“第一”、“第二”等在本文中用于描述各种元件,但这些元件不受上述术语限制。上述术语仅用于将一个元件与另一个元件区分。举例而言,在不脱离本发明范围的情况下,可以将第一结点称为第二结点,也可以将第二结点称为第一结点,第一结点与第二结点都是结点,但二者不是同一结点。
图1示出了本发明的社交网络用户关系采集***的结构,参见图1,本***包括分布式爬虫模块1与任务队列模块2。
具体而言,任务队列模块2用于将任务缓存在各队列供分布式爬虫模块1爬取,其包含Super队列、Normal队列、Big队列。爬取数据时,Big队列的执行优先级高于Normal队列,Normal队列的执行优先级高于Super队列。
分布式爬虫模块1采用主从模式的分布式网络爬虫架构,包括用于控制与管理的主控结点11、用于爬取数据的数据获取结点12,分布式爬虫模块1用于将通过客户端Web浏览器上传的用户ID列表文件中的各用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,并按照上述爬取优先级爬取用户关系数据。
实际应用中,分布式爬虫模块1存放任务的具体过程如下:
主控结点11将用户ID存放在任务队列模块2的Info队列,控制数据获取结点12从API服务器调用API接口爬取各用户的粉丝数与关注数,分别根据粉丝数与关注数大小将用户ID存放在不同队列:
将粉丝数小于第一粉丝阈值,如一百,的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值,如一万,的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间,即大于等于第一粉丝阈值、小于等于第二粉丝阈值,的用户ID存放在第一Big队列。
将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间,即大于等于第一关注阈值、小于等于第二关注阈值,的用户ID存放在第二Big队列。
这样进行任务存放的原因是:现有技术中,新闻媒体、企业公众号、社会名人等用户的粉丝数以万计,对其进行爬取时速度非常缓慢,导致***无法快速收敛。考虑到此,本发明根据用户的粉丝数或关注数对用户进行分类,将新闻媒体、社会名人等用户存入到Super队列中,同时考虑到这些用户对某些数据分析,比如网络水军识别,没有利用价值,所以将Super队列的爬取优先级调为最低。垃圾用户、普通用户等关系网规模较小,对数据分析挖掘有一定贡献,将其存入Normal队列中,优先级为次低。而对于具有小范围影响力的用户,其关系网规模比新闻媒体、社会名人的关系网规模小,但比普通用户的关系网规模大,其对于数据分析的价值较大,故将其存入Big队列中,优先级为最高。
通过上述优先级爬取用户数据的具体过程如下:
如果需要爬取用户的粉丝ID或用户的粉丝信息,主控结点11首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取。主控结点11读取任务之后分发于数据获取结点12进行爬取,这样能够避开粉丝数较大的用户,提高爬取效率。
如果需要读取用户的关注人ID或用户的关注人信息,主控结点11首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。主控结点11读取任务之后分发于数据获取结点12进行爬取,如此能够避开关注数较大的用户,缩短任务运行时间。
通过上述方法,本发明在用户关系采集过程中采用执行优先级不同的分布式爬取方法,避开关系网规模较大的用户,实现采集***的快速收敛。
在本发明优选实施例中,数据获取结点12包括:用于爬取用户粉丝ID的第一结点、用于爬取用户粉丝信息的第二结点、用于爬取用户关注人ID的第三结点、用于爬取用户关注人信息的第四结点、用于爬取用户信息的第五结点,上述五种数据获取结点通过调用API服务器提供的相应API接口爬取与该API对应类型的数据。特别地,第一结点与第三结点还用于指定用户时间轴中所有推文。
实际应用中,需要对分布式爬虫模块1获取的数据进行存储以供后续的数据分析与数据挖掘,因此,爬取数据完成后,数据获取结点12将数据提交于主控结点11,主控结点11将其存储在用户关系数据库3。上述数据包括用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息。一般的,用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
具体地,用户关系数据库3为MongoDB数据库,存储的具体过程为:主控结点11对API返回结果处理成json格式后进行去重,在去重后提取有效字段存储到MongoDB中。当关系网更新时,覆盖之前的数据,保证MongoDB中存储用户最新的数据且唯一。
这样,本发明实现了采集的用户关系数据的即时存储,为进一步的数据分析提供支持。
特别地,由于用户之间的关注关系经常改变,用户关系数据库3存储的用户关系数据很难保持准确,因此需要对其进行更新。在本发明优选实施例中,更新的具体过程如下:
更新粉丝列表时,分布式爬虫模块1判断用户关系数据库3中的用户与其粉丝列表中的粉丝ID是否仍存在关注关系。如果已不存在关系,则将该粉丝ID移出粉丝列表。另外获取用户最新增加的预设数量,如一百,的粉丝ID,将其加入粉丝列表,同时更新增加的各粉丝ID的关注列表。上述更新增加的各粉丝ID的关注列表指的是将上述用户关系数据库3中的用户加入各粉丝ID的关注列表。
更新关注列表时,分布式爬虫模块1判断用户关系数据库3中的用户与其关注列表中的关注人ID是否仍存在关注关系,如果已不存在关系,则将该关注人ID移出关注列表。另外获取用户最新增加的预设数量的关注人ID,将其加入关注列表,同时更新增加的各关注人ID的粉丝列表。上述更新增加的各关注人ID的关注列表指的是将上述用户关系数据库3中的用户加入各关注人ID的粉丝列表。
一般地,用户关系数据库3的更新可以选择定期更新方式或即时更新方式。
由此,本发明实现了用户关系数据库的更新,确保存储数据的准确。
较佳地,为了备份原始数据,社交网络用户关系采集***设置数据备份模块4,用于存储每次调用API接口的返回结果,作为爬取的原始数据的备份。
作为一个优选方案,数据备份模块4为分布式文件***HDFS,其存储的具体过程为:主控结点11将每次调用API的返回结果以json文件的格式存储到HDFS中,作为爬取的原始数据备份。
这样,本发明实现了数据即时存储与原始存储,兼顾了数据的准确性与完整性,有利于后期的数据分析。
图2示出了本发明的社交网络用户关系采集***的另一结构,如图2所示,爬虫结点即为分布式爬虫模块,关系网抽取模块与关系网更新模块为分布式爬虫模块的功能模块,分别实现上述任务存放、读取、爬取功能与数据库更新功能。分布式爬虫模块还通过授权模块与API服务器交互获取授权。
图3是本发明的关系网抽取模块示意图,参见图3,关系网抽取模块运行过程如下:
首先,从用户ID开始爬取其关系网,获取粉丝数、关注数。若上次意外终止,则从断点继续生成。
之后,将获取数据发送到主控结点去重,根据用户的粉丝数、关注数大小,将用户ID存入Super、Big或Normal队列中。
最后,优先从Big任务队列中读取任务,进行用户关系网的爬取,并将爬取数据存储在用户关系数据库。
图4以粉丝列表为例示出了本发明的关系网更新模块原理,参见图4,关系网更新模块运行过程如下:
首先,从用户关系数据库中取出待更新的用户列表,对列表中每个用户的粉丝列表中的粉丝ID,调用API接口判断该粉丝ID是否与当前用户仍存在关系,若不存在则将该粉丝ID移出当前用户的粉丝列表。
之后,对列表中每个用户调用API接口获得其最新增加的100名粉丝,更新当前用户的粉丝列表以及粉丝ID的关注列表。
最后,对更新的数据进行去重,并存储到用户关系数据库中。
图5示出了本发明的社交网络用户关系采集***部署,如图5所示,上方为分布式爬虫模块,下方左侧为任务队列模块,中部为用户关系数据库,右侧为数据备份模块,任务队列模块采用MySQL架构。
图6示出了本发明的社交网络用户关系采集方法,参见图6,此方法按照如下步骤执行:
步骤S1,将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列及Super队列。
在本发明优选实施例中,上述步骤具体为:
爬取各用户ID的粉丝数与关注数。
将粉丝数小于第一粉丝阈值的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间的用户ID存放在第一Big队列。
将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间的用户ID存放在第二Big队列。
通过上述步骤,本发明实现了任务的分类存放。
步骤S2,按照预设优先级策略爬取用户关系数据。其中,预设优先级策略为:Super队列、Normal队列、Big队列的优先级依次增加。
实际应用中,上述步骤具体为:
读取各队列中的用户ID并进行爬取:
首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取。
或者首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。
通过上述步骤,本发明实现了任务的有序读取、分发及爬取,避免了关系网规模较大用户对爬取效率造成的影响,保证了***的快速收敛。
步骤S3,将用户关系数据保存。用户关系数据包括:用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息。上述用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
这样,本发明实现了爬取数据的即时存储,便于后续的数据分析。
在本发明优选实施例中,在将用户关系数据保存之后,此方法还包括:
判断用户与其粉丝列表中的粉丝ID是否仍存在关系;若否,则将该粉丝ID移出粉丝列表,并获取用户最新增加的预设数量的粉丝ID,将其加入粉丝列表,同时更新上述预设数量的粉丝ID的关注列表。
或者判断用户与其关注列表中的关注人ID是否仍存在关系;若否,则将该关注人ID移出关注列表,并获取用户最新增加的预设数量的关注人ID,将其加入关注列表,同时更新上述预设数量的关注人ID的粉丝列表。
由此,本发明实现了用户关系数据的更新,确保其准确性。
实际应用中,此方法还包括:调用API接口爬取数据,以及存储每次调用API接口的返回结果,作为爬取的原始数据的备份便于后期的数据分析与数据挖掘。
本发明的应用范围包括微博、Twitter、Facebook等一切具有链接关系的社交网络平台,应用前景广泛。
本发明提供的社交网络用户关系采集***及方法,对传统的广度优先遍历采集方法进行改进,通过优化任务选取方法,加快关系网采集的收敛速度,缩短任务运行时间,提高采集效率。同时对采集数据进行即时存储与更新,对原始采集数据进行备份,为后期的数据分析提供有力支持。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种社交网络用户关系采集***,其特征在于,包括:分布式爬虫模块与任务队列模块;其中,
任务队列模块包含爬取优先级依次增加的Super队列、Normal队列、Big队列;
分布式爬虫模块用于将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,并按照所述爬取优先级爬取用户关系数据。
2.如权利要求1所述的***,分布式爬虫模块包括主控结点与数据获取结点;任务队列模块还包含Info队列;以及所述将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列、Super队列,具体为:
主控结点将用户ID存放在Info队列,控制数据获取结点爬取各用户的粉丝数与关注数;将粉丝数小于第一粉丝阈值的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间的用户ID存放在第一Big队列;将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间的用户ID存放在第二Big队列。
3.如权利要求2所述的***,所述按照所述爬取优先级爬取用户关系数据具体为:主控结点读取各队列中的用户ID并分发于数据获取结点进行爬取:
首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取;和/或
首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。
4.如权利要求3所述的***,所述数据获取结点包括:用于爬取用户粉丝ID的第一结点、用于爬取用户粉丝信息的第二结点、用于爬取用户关注人ID的第三结点、用于爬取用户关注人信息的第四结点、用于爬取用户信息的第五结点;以及
所述***还包括:用户关系数据库,用于存储分布式爬虫模块爬取的用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息;其中,用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
5.如权利要求4所述的***,分布式爬虫模块还用于在用户关系数据库中判断用户与其粉丝列表中的粉丝ID是否仍存在关系,若否,则将该粉丝ID移出粉丝列表,并获取用户最新增加的预设数量的粉丝ID,将其加入所述粉丝列表,同时更新所述预设数量的粉丝ID的关注列表;在用户关系数据库中判断用户与其关注列表中的关注人ID是否仍存在关系,若否,则将该关注人ID移出关注列表,并获取用户最新增加的预设数量的关注人ID,将其加入所述关注列表,同时更新所述预设数量的关注人ID的粉丝列表。
6.如权利要求2-5任一所述的***,数据获取结点通过调用API服务器提供的相应API接口爬取数据;以及所述***还包括:
数据备份模块,用于存储每次调用API接口的返回结果,作为爬取的原始数据的备份。
7.一种社交网络用户关系采集方法,其特征在于,包括步骤:
S1.将用户ID按照关系网规模从小到大的顺序分别存放在Normal队列、Big队列及Super队列;
S2.按照预设优先级策略爬取用户关系数据;其中,预设优先级策略为:Super队列、Normal队列、Big队列的优先级依次增加。
8.如权利要求7所述的方法,步骤S1具体为:
爬取各用户ID的粉丝数与关注数;
将粉丝数小于第一粉丝阈值的用户ID存放在第一Normal队列,将粉丝数大于第二粉丝阈值的用户ID存放在第一Super队列,将粉丝数介于第一粉丝阈值、第二粉丝阈值之间的用户ID存放在第一Big队列;
将关注数小于第一关注阈值的用户ID存放在第二Normal队列,将关注数大于第二关注阈值的用户ID存放在第二Super队列,将关注数介于第一关注阈值、第二关注阈值之间的用户ID存放在第二Big队列;以及
步骤S2具体为:读取各队列中的用户ID并进行爬取:
首先从第一Big队列中读取,当第一Big队列为空时从第一Normal队列中读取,当第一Normal队列为空时从第一Super队列中读取;和/或
首先从第二Big队列中读取,当第二Big队列为空时从第二Normal队列中读取,当第二Normal队列为空时从第二Super队列中读取。
9.如权利要求7或8所述的方法,在步骤S2之后,所述方法还包括:将所述用户关系数据保存;其中,所述用户关系数据包括:用户信息、用户粉丝ID、用户粉丝信息、用户关注人ID、用户关注人信息;以及
用户粉丝ID与用户粉丝信息组成用户的粉丝列表,用户关注人ID与用户关注人信息组成用户的关注列表。
10.如权利要求9所述的方法,在将所述用户关系数据保存之后,所述方法还包括:
判断用户与其粉丝列表中的粉丝ID是否仍存在关系;若否,则将该粉丝ID移出粉丝列表,并获取用户最新增加的预设数量的粉丝ID,将其加入所述粉丝列表,同时更新所述预设数量的粉丝ID的关注列表;和/或
判断用户与其关注列表中的关注人ID是否仍存在关系;若否,则将该关注人ID移出关注列表,并获取用户最新增加的预设数量的关注人ID,将其加入所述关注列表,同时更新所述预设数量的关注人ID的粉丝列表;以及
所述方法还包括:调用API接口爬取数据;存储每次调用API接口的返回结果,作为爬取的原始数据的备份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610823149.9A CN106384292A (zh) | 2016-09-14 | 2016-09-14 | 社交网络用户关系采集***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610823149.9A CN106384292A (zh) | 2016-09-14 | 2016-09-14 | 社交网络用户关系采集***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106384292A true CN106384292A (zh) | 2017-02-08 |
Family
ID=57936435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610823149.9A Pending CN106384292A (zh) | 2016-09-14 | 2016-09-14 | 社交网络用户关系采集***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106384292A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460299A (zh) * | 2018-11-08 | 2019-03-12 | 中山大学 | 一种分布式并行多源社交网络数据采集***和方法 |
CN109670136A (zh) * | 2018-12-29 | 2019-04-23 | 北京工业大学 | 一种基于多策略的微博信息优先采集方法 |
CN111368162A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 基于社交关系网络的爬虫方法及装置 |
CN111444412A (zh) * | 2020-04-03 | 2020-07-24 | 北京明朝万达科技股份有限公司 | 网络爬虫任务的调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101601A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 网络搜索中的基于链接层次分类的主题爬取方法 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和*** |
CN105117422A (zh) * | 2015-07-30 | 2015-12-02 | 中国传媒大学 | 智能社交网络推荐*** |
-
2016
- 2016-09-14 CN CN201610823149.9A patent/CN106384292A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101601A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 网络搜索中的基于链接层次分类的主题爬取方法 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和*** |
CN105117422A (zh) * | 2015-07-30 | 2015-12-02 | 中国传媒大学 | 智能社交网络推荐*** |
Non-Patent Citations (2)
Title |
---|
吕湘: "基于社交网络信息爬虫的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
周毅 等: "基于"链接"层次分类的主题爬取", 《计算机科学》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460299A (zh) * | 2018-11-08 | 2019-03-12 | 中山大学 | 一种分布式并行多源社交网络数据采集***和方法 |
CN109460299B (zh) * | 2018-11-08 | 2022-04-15 | 中山大学 | 一种分布式并行多源社交网络数据采集***和方法 |
CN109670136A (zh) * | 2018-12-29 | 2019-04-23 | 北京工业大学 | 一种基于多策略的微博信息优先采集方法 |
CN109670136B (zh) * | 2018-12-29 | 2021-04-27 | 北京工业大学 | 一种基于多策略的微博信息优先采集方法 |
CN111368162A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 基于社交关系网络的爬虫方法及装置 |
CN111444412A (zh) * | 2020-04-03 | 2020-07-24 | 北京明朝万达科技股份有限公司 | 网络爬虫任务的调度方法及装置 |
CN111444412B (zh) * | 2020-04-03 | 2023-06-16 | 北京明朝万达科技股份有限公司 | 网络爬虫任务的调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979433B2 (en) | Highly scalable four-dimensional web-rendering geospatial data system for simulated worlds | |
CN104008028B (zh) | 基于多云存储的智能移动终端数据存储备份方法与*** | |
CN106384292A (zh) | 社交网络用户关系采集***及方法 | |
CN107678776A (zh) | 多模块版本依赖关系构建方法、装置、服务器和存储介质 | |
CN104778222B (zh) | 基于usb存储设备的媒体库建立及更新方法 | |
CN105653425A (zh) | 基于复杂事件处理引擎的监控*** | |
CN103324763B (zh) | 一种手机端树形数据结构的展现方法 | |
CN108062243A (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN104615716B (zh) | 基于优先序列的分布式社交网络信息采集方法及*** | |
CN107357630A (zh) | 一种实现虚拟机同步的方法、装置和存储介质 | |
CN107423942A (zh) | 一种业务流转的方法及装置 | |
CN104063475B (zh) | 用户自定义列表处理方法和装置 | |
CN106101412A (zh) | 移动通信终端的信息会话处理方法及移动通信终端 | |
CN112288397A (zh) | 流程模板配置方法、流程执行方法、装置和电子设备 | |
CN107273187A (zh) | 读取位置获取方法及装置、计算机装置、可读存储介质 | |
CN104407811B (zh) | 一种基于云计算的合并io装置 | |
CN106161516A (zh) | 用于存储数据的方法、装置以及*** | |
CN106506647A (zh) | 一种客户端具有数据备份装置的智慧社区云存储*** | |
CN106161056B (zh) | 周期型数据的分布式缓存运维方法及装置 | |
CN109522177A (zh) | 一种任务日志处理***、方法以及装置 | |
CN103414756A (zh) | 一种任务分发方法、分发节点及*** | |
CN103150400A (zh) | 一种基于MapReduce框架的数据筛选方法 | |
CN106648304A (zh) | 智能设备桌面的归类方法及装置 | |
CN106649847A (zh) | 一种基于Hadoop的大数据实时处理*** | |
CN104753964B (zh) | 网络产品展示方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170208 |