基于脚本引擎的微博用户关系采集方法技术

技术编号:9295768 阅读:177 留言:0更新日期:2013-10-31 00:22
本发明专利技术涉及信息采集技术领域,公开了一种基于脚本引擎的微博用户关系采集方法,该方法包括步骤:S1,采用脚本引擎技术自动登录微博客网站;S2,采用网页采集方式对特定账户信息爬取其对应内容页面信息;S3,元数据解析,获取用户列表、用户行为机制及用户基本信息;S4,实现用户关系抽取;S5,使用广度优先遍历用户列表,丰富用户关联关系。本发明专利技术提供的采集方法克服了API访问限制问题,有利于微博客信息的规模化采集,同时也提高了信息采集的精确度。

【技术实现步骤摘要】
基于脚本引擎的微博用户关系采集方法
本专利技术属于信息
,具体地说,是涉及一种基于脚本引擎的微博用户关系采集方法。
技术介绍
伴随着WEB信息技术的迅猛发展,实体社交关系的研究受到学术界和商业界的密切关注。社交关系随着新兴起的互联网模式——微博的发展呈现指数级的膨胀,如Facebook、LinkedIn、新浪等其中蕴含着大量的用户关系,这些用户关系中潜藏着很大的商业价值。微博用户关系抽取是微博海量信息实时采集的一个基础任务。微博用户关系有助于提供微博信息更新采集的策略,可以作为微博海量信息采集时实时更新采集的一条线索,是微博深入研究的基础资源。目前,微博客用户关系抽取主要采用基于微博开放API的方式,借助微博特有的“Following”和“Followed”规则。因而所获取信息的数量、范围、频度受微博API的限制。这种方法一些不足,其一,采集系统只能按照应用需求的频度和范围获取有限的数据;其二,针对不同API限制访问频率不同,影响数据的动态更新;其三,抽取的用户信息及用户关系不完备,造成采集率不高。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何解决微博中用户信息的规模化采集,提高采集率,构建较为完备的用户关系。(二)技术方案为解决上述技术问题,本专利技术提供了一种基于脚本引擎的用户关系采集方法,所述方法包括以下步骤:S1,采用脚本引擎技术自动登录微博客网站,实现对微博客网站的高精确度采集;S2,采用网页采集方式对特定账户信息爬取其对应内容页面信息;S3,利用元数据解析技术对其中的用户信息、用户行为机制进行解析,获得用户信息;S4,在S3的基础上,利用用户行为机制,实现用户关联关系抽取,并进行存储;S5,使用广度优先遍历用户列表,对每个采集到的用户id重复上述步骤,将采集到的信息不断丰富用户关系列表;其中,在步骤S1中,采用Javascript脚本语言实现组态软件的脚本功能,采用SpiderMonkey实现组态软件脚本模块的嵌入引擎,只解析页面中与生产连接和微博客内容相关的脚本;在步骤1中,对脚本引擎中的解释器进行扩展,使其同时具有解释和编译两种执行模式;脚本引擎框架设计要达到的目标是将SpiderMonkey嵌入到组态软件的引擎模块中,使其具有最基本的JavaScript语言处理能力,其实现步骤具体包括:S11,创建引擎封装类JSEngine;S12,实现脚本引擎的初始化输出函数InitScript();S13,实现脚本引擎的卸载输出函数UnInitScript();其中,步骤S3的实现,具体包括:S31,总结各微博网页的HTML文档结构,找出不同结点的标签的区别;S32,根据S31中的HTML文档结构规律过滤掉无效信息,将HTML转化为XHTML,得到标准的XHTML文档,并对文档进行DOM树解析,建立元数据特征模板;S33,匹配模板,根据XHTML文档特点,设计算法,实现模板集里面的模板匹配效果;S34,根据匹配到的模板结点路径,提取所需信息,按照一定的格式存放。步骤S3中,用户行为机制包括:用户“关注和被关注”的追随机制,用户推送信息的转发、评论机制;步骤S4中,对用户关系抽取的具体实现步骤为:S41,寻找Following和Follower的用户URL;S42,过滤URL放入URL队列中,作为待采集对象;S43,结合当前用户的URL,按照S3中的用户行为机制,建立用户关联关系表,并进行存储;其中,在步骤S5中,使用广度优先遍历方式遍历用户列表,采集每个用户列表信息到本地,同时对用户进行去重入库。附图说明图1为本专利技术提供的一种基于脚本引擎的微博用户关系采集方法的流程示意图;具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。图1示出了本专利技术实施例所提供的微博用户关系模块化采集方法的流程示意图,如图1所示,所述方法包括以下步骤:S1:采用脚本引擎技术自动登录微博网站;微博客是一种社区网站,需要以一定的用户身份登录后才能进行信息采集。为了保障用户的安全性,微博客网站的用户认证过程非常复杂严格。微博客属于web2.0的展现形式,在实现技术层面,大量使用脚本语言。对微博客采集器来说,不需要解析页面中所有的脚本,只需要解析与生产链接和微博内容相关的脚本即可。采用SpiderMonkey作为组态软件脚本模块的嵌入引擎,使组态软件具有JavaScript语言处理能力,其具体实现方法,如下:S11,下载最新版本的SpiderMonkey,将src目录下的js32d.dll和js32.dll拷贝到系统目下,其中动态链接库js32d.dll用来支持Debug版本而js32.dll则用来支持Release版本。创建引擎封装类JSEngine,将有关初始化引擎最基本的设置和初始化函数封装到一个JSEngine类中,调用其核心函数Create(),完成脚本引擎各种元素的初始化,包括:运行时环境Runtime、创建上下文Context以及创建并初始化全局变量GlobalObject等。S12,实现脚本引擎的初始化输出函数InitScript(),调用JSEngine类的成员函数Create()完成脚本环境的初始化。S13,实现脚本引擎的卸载函数UnInitScript(),当应用程序退出时,清理脚本引擎初始化时分配的内存,主要步骤有:释放所创建的上下文句柄;释放运行时环境及在该运行时环境上的变量、对象空间;释放初始化时为全局结构分配的空间等。采用Javascript脚本语言实现组态软件的脚本功能,包括:定义符号表,实现词法/语法分析器,实现语义检查器、中间代码生产器、代码优化器、代码生成器,最终生成脚本引擎虚拟机。其优点是开发简单、功能灵活、跨平台性好。S2:采用网页信息采集技术,以登录后的用户页面作为源数据,包括:用户首页、评论/转发页面、粉丝页面等等,爬取网页源信息。S3:对爬取的网页源码信息进行源数据解析:微博客中的信息页面,虽然也是标准的html文件但其内容与普通的网页存在很大差异。其以一定的结构特征存储了大量信息,所述信息包括:发言者、发言时间、发言平台、推送关系及对应推送频次、发表者是否认证、用户关注关系等。其具体实现如下描述:S31,研究各个微博客网页的HTML文档结构,并对各种微博客网页所在的帖子页面的HTML进行总结分析,找出所需要的发言以及回复、作者信息、发表时间、上传通道等所在节点,总结不需要的信息所在节点的标签和需要信息的标签的区别,提取可行的规律。例如分析同学网的网页结构,其中<p>和</p>标签之间是发布的信息;<span>和</span>标签之间是信息来源和用户所在地。又如新浪微博的网页结构,在<p>和</p>标签之间的是信息;<li>和</li>之间是用户的id,用户id是识别用户的唯一标识;<strong>和</strong>之间是信息来源等。S32,预处理。通过页面规律的总结,简化文档结构,把不需要的信息所在节点去掉,以减少文档的深度和层次结构,将简化后的HTML转化本文档来自技高网...
基于脚本引擎的微博用户关系采集方法

【技术保护点】
一种基于脚本引擎的微博客用户关系采集方法,其特征在于,包括以下步骤:S1,采用脚本引擎技术自动登录微博客网站;S2,采用网页采集方式对特定账户信息爬取其对应内容页面信息;S3,利用元数据解析技术对其中的用户id、用户行为机制进行解析,获取用户信息;S4,根据用户行为机制,抽取用户关联关系;S5,采用广度优先方式遍历用户列表,对每个采集到的用户id重复上述步骤,丰富用户关系集。

【技术特征摘要】
1.一种基于脚本引擎的微博客用户关系采集方法,其特征在于,包括以下步骤:S1,采用脚本引擎技术自动登录微博客网站;进一步的,采用Javascript脚本语言实现组态软件的脚本功能,采用SpiderMonkey实现组态软件脚本模块的嵌入引擎,只解析页面中与生产连接和微博客内容相关的脚本;进一步的,脚本引擎框架设计要达到的目标是将SpiderMonkey嵌入到组态软件的引擎模块中,使其具有最基本的JavaScript语言处理能力,其实现步骤具体包括:S11,创建引擎封装类JSEngine;S12,实现脚本引擎的初始化输出函数InitScript();S13,实现脚本引擎的卸载输出函数UnInitScript();S2,采用网页采集方式对特定账户信息爬取其对应内容页面信息;S3,利用元数据解析技术对其中的用户id、用户行为机制进行解析,获取用户信息;进一步的,实现步骤具体包括:S31,总结各微博网页的HTML文档结构,找出不同结点的标签的区别;S32,根据S31中的HTML文档结构规律过滤掉无效信息,将HTML转化为XHTML,得到标准的XHTML文档,并对文档进行DOM树解析,建立元数据特征模板;S33,匹配模板,根据XHTML文档特点,设计算法,实...

【专利技术属性】
技术研发人员:都云程
申请(专利权)人:北京拓尔思信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1