一种获取特定话题微博中pcu关联数据的方法

文档序号:9200452阅读:474来源:国知局
一种获取特定话题微博中pcu关联数据的方法【
技术领域
】[0001]本发明属于计算机社交网络数据获取技术,具体涉及一种自动获取微博中特定话题P⑶关联数据的方法。【
背景技术
】[0002]互联网和Web2.0促使社交网络的迅猛发展,社交网络的用户量大、数据产生快速,日益积累的数据及其复杂的关联结构使得信息的获取和理解越来越困难。[0003]在中国影响力最大的社交网络站点新浪微博中,含有大量潜在价值的信息,研宄这些信息的重要方面是分析新浪微博中特定话题的帖子、帖子评论、发帖用户,这些数据散落在不同的页面中,造成人们无法从大量页面中迅速而准确地找到或理解这些有用的信息。[0004]这些数据内在的关联结构中蕴藏着大量的有价值的信息,因而需要自动化的抽取方法从这些数据中获取结构较好的数据信息,并进行融合最终形成适应社交网络数据挖掘的新浪微博PCU关联数据。[0005]申请人经过查新,没有找到有关从新浪微博中获取PCU关联数据的专利,因而检索了一篇与本专利相关的已授权专利:[0006]1.基于社会标注的主题爬虫系统[专利号:ZL200910062020.0];在专利I中,系统充分利用了网页的社会标注进行网页相关性的判断,指导爬虫的爬行方向,对主题搜索引擎提供优质的网页数据内容。专利发明所述方法主要解决了网页爬虫的爬行方向,且依赖社会标注形成的知识库,但是该方法无法形成获取内容之间的关联关系,无法适应社交网络天然的复杂关联性,因而无法对社交网络数据进行有效得组织。【
发明内容】[0007]本发明提出了一种新的数据获取策略,目的是提供一种自动获取微博中特定话题的PCU关联数据的方法,以非结构化数据中元素间逻辑上的关联关系指导数据获取路径,自动构建结构化数据集来描述元素及其关联关系,从而为进一步的数据分析和知识挖掘提供数据基础,具有元素关联度高、元素关系结构化强、获取效率高的特点。[0008]为达到上述目的,本发明是采取如下技术方案予以实现的:[0009]一种从微博中特定话题获取PCU关联数据的方法,包括如下过程:[0010](I)数据访问权限获取:通过分析获取到页面的HTML,识别出用户名和密码的提交标签,自动化填写并提交登录身份验证请求,完成模拟用户登录的过程。[0011]⑵PCU关联数据页面下载:分析微博页面的HTML结构,得到该页面上每条帖子的帖子内容P、帖子评论C、发帖人U这三类实体的关联入口,然后通过上述三类实体的关联入口,同步获得帖子内容、帖子评论以及发帖人好友关系的HTML页面。[0012](3)PCU关联数据的结构化解析与构建:对得到的三类关联实体的HTML页面进行分层分类解析,依据关联实体间的隶属、共现关系,构建异质网络G=(P,C,U,f,g,h)。[0013]过程⑴所述数据访问权限获取按照如下过程:[0014]第I步:通过selenium启动IE9浏览器,自动进入新浪微博登陆主页http://www.weib0.com/login,php,定位输入帐户和密码的HTML标签〈inputname=〃username〃>和〈inputname=〃password〃>;[0015]第2步:根据第I步定位的标签,利用selenium自动填写已经注册成功的用户名和密码;[0016]第3步:根据登录页面是否含有HTML标签〈tablename=〃verifycode〃>,判断是否需要输入验证码;[0017]第4步:若有验证码输入标签,采用字符提取技术获取验证码,对于采用该技术失效的情况,采取人工识别并手工输入的方法;[0018]第5步:通过selenium定位到登陆标签〈aclass=〃W_btn_g〃>,自动触发该标签完成数据访问权限获取。[0019]过程⑵所述P⑶关联数据页面下载的步骤为:[0020]第I步:进入微博搜索页面http://s.weib0.com/,选择“综合”搜索查询接口,同时初始化帖子链接队列池Urlp、用户链接队列池Urlu、评论链接队列池Url。、好友关系列表链接队列池Urlf、帖子页面库Pagesp、用户页面库Pagesu、评论页面库Pages。、好友关系页面库Pagesf为空;[0021]第2步:将特定话题关键词自动填入搜索框〈inputtype="text"〉中,自动触发提交“搜索,,按钮〈inputtype=〃text〃class=〃searchInp_form〃>。通过selenium的变量current_url获取此关键词搜索页面的链接urlp并存入Urlp;[0022]第3步:从Urlp中逐一取出urlp,用selenium的get(url)函数获取相应的页面,用selenim的变量page_source提取页面源码Sp,并存入页面库Pagesp;[0023]第4步:检测用户URL队列池Urlu、评论URL队列池Url。和好友关系链接队列池处1,是否为空,若为空,则转到过程(3)的第I步;若不为空,从中依次取出帖子的用户链接urlu及评论链接url。,启用三个线程分别下载用户页面Su、评论页面S。*Sf,存入用户页面库Pagesu、评论页面库Pages。及好友关系页面库Pages丨中,转入过程(3)的第5步。[0024]过程(3)所述P⑶关联数据的结构化解析,按照如下步骤:[0025]第I步:逐一从Pagesp取出Sp,利用Beautifulsoup定位标签〈divclass=〃WB_cardwrapS_bg2clearfix〃>,解析出Post页面上所有的帖子,针对每个帖子解析出必要字段,包括帖子id(post_id)、发帖用户名(poster)、发帖用户id(user_id)、发帖用户头像、发帖用户主页链接urlu、发帖内容、发帖时间、评论数、转发数;[0026]第2步:将上一步解析得到的发帖用户主页链接urlu,模式为http://weib0.com/u/〈user_id>,放入用户链接队列池Urlu;[0027]第3步:通过利用帖子id和通过firebug截获的帖子评论响应地址拼凑得到评论链接urlc,模式为http://weib0.com/aj/v6/comment/big?ajwvr=6&id=<post_id>&page=<num>,放入评论链接队列池Urlc;[0028]第4步:通过发帖人user_id,得到好友关系链接urlf,模式为http://weib0.com/p/100505<user_id>/follow?page=<num>以及http://weib0.com/p/100505〈user_id>/follow?relate=fans&page=<num>;[0029]第5步:检测Pagesu,Pages。、Pagesf是否为空,若为空,则进入过程(2)的第4步;若不为空,逐一从Pagesu中取出Su,利用Beautifulsoup解析出用户信息有关字段,包括用户id、用户名、关注数、粉丝数、个人签名、个人信息;逐一从Pages。中取出S。,利用Beautifulsoup解析出帖子评论有关字段,包括评论人名、评论人id、评论内容、评论时间,完成一组P⑶数据的获取;逐一从Pagesf中取出Sf,利用Beautifulsoup解析出发帖人好友的有关字段,包括昵称、id、主页链接、头像、关注数、粉丝数、微博数、居住地址;[0030]过程(3)所述P⑶关联数据的构建按照如下步骤:[0031]第I步:构建一个有向无权异质网络G=(P,C,U,f,g,h),初始化G为空;[0032]第2步:由帖子与评论之间的隶属关系,判断是否是原发帖和评论、判断两个帖子是否为转发关系,融合后得到帖子关系网络f;[0033]第3步:由用户的关注与被关注信息得到用户好友关系网络g;[0034]第4步:根据用户与帖子、帖子评论的隶属关系构建用户帖子隶属关系网络h;[0035]第5步:融合三类实体及三类关联关系得到异质网络G=(P,C,U,f,g,h)。[0036]本发明实现了对微博中关联元素快速、准确的获取与组织,极大地解决了微博中具有逻辑关联关系的数据因为散落在不同页面而难于分析的问题,为社交网络数据挖掘提供良好的结构化数据。具体而言,本发明与现有技术相比的优点在于:[0037](I)获取的数据关联度高:获取的数据及其组织形式符合数据之间内在的关联关系,根据数据的逻辑关联指导获取路径,是具备语义信息的,能够最大程度地真是反映数据间固有的关联关系。[0038](2)数据获取与组织高效合理:根据数据间的关系指导数据获取的路径,避免非有效开销,加快了数据从获取到组织的进度,从而提高了方法的效率,增强了方法针对新浪微博这一在线大规模社交网络系统的适用性。【附图说明】[0039]图1是本发明从新浪微博中自动获取PCU关联数据的流程图;[0040]图2是本发明的数据访问权限获取流程图;[0041]图3是本发明的PCU关联数据下载、解析与构建的流程图;[0042]图4是P⑶关联数据实例不意图。【具体实施方式】[0043]以下结合附图及实例对本发明作进一步的说明。[0044]从新浪微博上散落在各个页面的元素及其逻辑关系构建PCU关联数据的实现过程如图1所示,可以分为如下3个过程:[0045](I)数据访问权限获取,包括5个步骤。[0046]第I步:通过selenium启动IE浏览器,自动进入新浪微博登陆主页http://www.weib0.com/login,php,定位到输入帐户和密码的HTML标签〈inputname=〃username">和〈inputname=〃password〃>;[0047]第2步:根据第I步的标签利用selenium自动填写已经注册成功的用户名和密码,如填写账户^robbersunisohu.com,,,密码“897fgCKdf”;[0048]第3步:根据登录页面是否含有HTML标签〈tablename=〃verifycode〃>,判断是否需要输入验证码;[0049]第4步:若有验证码标签,采用第三方的字符提取技术获取验证码,对于采用该技术失效的情况,米取人工识别并手工输入的方法;[0050]第5步:通过selenium定位到登陆标签〈aclass=〃W_btn_g〃>,自动触发该标签完成数据访问权限获取。[0051]这些步骤的流程如图2所示。[0052](2)P⑶关联数据页面下载,包括4个步骤。[0053]第I步:进入微博搜索页面http://s.weib0.com/,选择“综合”搜索查询接口,同时初始化帖子URL队列池Urlp、用户URL队列池Urlu、评论URL队列池Url。、好友关系列表URL队列池Urlf、帖子页面库Pagesp、用户页面库Pagesu、评论页面库Pages。、好友关系页面库Pagesf为空;[0054]第2步:将特定话题关键词,如“世界最穷总统”,自动填入搜索框〈inputtype="text〃>中,自动触发提交“搜索”按钮〈inputtype=〃text〃class=〃searchInp_form">,通过selenium的变量current_url获取所得帖子的链接urlp并存入Urlp;[0055]第3步:从Urlp中逐一取出urlp,用selenium的get(url)函数获取相应的页面,用selenim的变量page_source提取页面源码Sp,并存入页面库Pagesp;[0056]第4步:检测用户URL队列池Urlu、评论URL队列池Url。和好友关系链接队列池处1,是否为空,若为空,则转到st印当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1