基于JAVA的社交网络的信息采集系统的研究与设计毕业设计.docx
- 文档编号:14805325
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:31
- 大小:466.30KB
基于JAVA的社交网络的信息采集系统的研究与设计毕业设计.docx
《基于JAVA的社交网络的信息采集系统的研究与设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于JAVA的社交网络的信息采集系统的研究与设计毕业设计.docx(31页珍藏版)》请在冰点文库上搜索。
基于JAVA的社交网络的信息采集系统的研究与设计毕业设计
本科毕业设计(论文)
基于JAVA的社交网络的信息采集系统的研究与设计
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书
2、不保密囗。
(请在以上相应方框内打“√”)
作者签名:
年月日
导师签名:
年月日
摘要
本文借助开发平台Eclipse针对社交网络新浪微博开发了一个信息采集器,能够实现对新浪微博的信息采集,所得结果对于新浪微博的开发具有重要的指导意义。
论文主要研究了社交网络的信息采集原理,并以新浪微博为研究对象,借助JAVA编程软件实现对微博信息的采集。
本论文的主要工作有以下几个方面:
首先是利用微博系统的JAVASDK获取数据,该技术通过调用微博平台提供API来获取数据。
这部分工作需要利用微博系统的JAVASDK获取数据的工作流程,调用API需要通过用户身份的鉴权。
目前使用OAuth鉴权,其优点是数据准确快捷,很少因微博平台的变化而变化,但缺点是接口提供商限制的因素多且不稳定。
其次通过JAVA编程设计一个良好的界面,调用API接口实现对授权用户的信息采集,通过输入一个关键词,在授权用户好友微博圈里进行匹配,将出现该关键词的好友微博返回到txt文件中进行保存,同时将历史采集记录保存下来,实现对授权用户好友信息的主题采集。
研究结果表明,通过调用API接口获取用户微博数据这种方式实时有效,能够满足我们对新浪微博授权用户微博实时信息的主题采集。
本文的特色在于通过调用API接口实现对新浪微博信息的主题采集快速便捷,而且设计了一套完善的显示与保存方案,能够对新浪微博的后续研究提供数据。
关键词:
社交网络,新浪微博,API,信息采集
Abstract
Thispaperismainlytodevelopaninformationcollector,whichcancollecttheinformationofSinamicro-bloggingbytheuseofEclipse.TheresultsofthispaperhaveimportantguidingsignificanceforthefurtherstudyofSinamicro-blogging.
Inthispaper,wemainlyintroducetheprincipleofsocialnetworks.Onthebasisofthis,wetakeSinamicro-bloggingasourresearchobject,usingJAVAprogrammingsoftwarefortheinformationcollectionofit.Themainworkofthispaperhasthefollowingaspects:
First,weintroducetheprincipleofJAVASDK,whichisprovidedbytheSinamicro-bloggingsystemtoobtaindata.ThemethodtogetthedatabySDKistousetheAPIinterfacesofSinamicro-blogging.ThispartoftheworkrequirestheuseofJAVASDKtogettheaccesstotheAPI.OnlywhenwehavetheaccesstotheAPIofSinamicro-blogging,wecangetthroughtheidentityauthenticationofSinamicroblogging.CurrentlySinamicro-bloggingusetheOAuth2.0protocolfortheidentityauthentication.TheadvantageofOAuth2.0isfastandaccurate,whichrarelychangesduetochangesofthemicro-bloggingplatform.ButthedrawbackisthattherearetoomanylimitingfactorsforAPI.ThenweusetheJAVAprogrammingsoftwareEclipsetodesignafriendlyinterfacetorealizetheinformationcollectionofSinamicro-blogging.Byenteringakeywordintheinputarea,thesystemwedesignedcanmatchthekeywordwithSinamicro-blogging.Oncethekeywordappearsinthemicro-blogging,thesystemwillcollecttheinformationoftheSinamicro-blogging.Bythesametime,thesystemwillsavetheinformationtothedatafileandsavetherecordedhistoryofthecollection,toachievetheauthorizedsubjectcollectionfortheSinamicro-blogging.
TheresearchresultsshowthatbyusingtheAPIinterfacetogetdatathisway,wecanrealizethereal-timeinformationcollectionofSinamicro-blogging.
ThecharacteristicofthispaperistousetheAPItorealizethesubjectcollectionofSinamicro-blogging,quickandeffective,whichcansavealotoftime.Inadditiontothis,Idesignasetoffriendlyinterface,whichcandisplayandsavetheinformationeffectivelyandprovidedataforthefurtherstudyofSinamicro-blogging.
KeyWords:
socialnetwork,Sinamicro-blogging,API,informationcollection
第1章绪论
1.1研究背景和意义
随着网络技术的发展,互联网跨入到web2.0[1]时代。
在web2.0时代中,整个互联网平台不停扩展着人们之间的社会关系,从而促使多种社交网络平台的出现,产生了多种新颖的交互模式和途径。
社交网络是一种在线交互媒体,该媒体最显著特点为具有强大的信息传播能力与影响力。
近些年来,社交网络迅速发展。
在国外,以FaceBook,Twitter为代表,在国内,以新浪微博,腾讯微博,QQ空间,XX贴吧以及人人网为代表。
这些社交网络平台向人们提供社会网络服务,使得用户能够方便快捷地通过互联网自由分享自己的个人信息,获取和传播其他用户的信息。
如此一来,整个社交人群的交互信息和背景信息等形成一张社会网。
国内社交媒体中,近年来以微博的发展最为迅速,用户群规模增长最快。
根据相关统计,国内2014年1月份社会化媒体排行榜如表1.1所示。
由1.1可以看出,有三大微博平台跻身社会化媒体分享榜前十,微博平台已经成为社会化媒体中最受欢迎的平台,其中尤以新浪微博最为火热。
在2013年7月《中国互联网络发展状况统计报告》中提到:
“截至2013年6月底,我国微博网民规模为3.31亿,较2012年底增长了2216万,增长7.2%。
网民中微博使用率达到了56.0%,较上年底增加了1.3个百分点。
2014年4月17日,新浪微博正式登陆纳斯达克,成为全球范围内首家上市的中文社交媒体。
表1.12014年社会化媒体的排行榜
排名
媒体名称
分享百分比
排名
媒体名称
分享百分比
1
新浪微博
17.93%
6
开心网
5.09%
2
QQ空间
16.49%
7
搜狐微博
4.86%
3
微信
16.17%
8
飞信
4.14%
4
腾讯微博
6.40%
9
XX贴吧
3.86%
5
人人网
6.22%
10
QQ好友
3.16%
随着微博的爆炸式发展,它逐步成为国内外学者共同关注的焦点。
微博是一种允许用户用即时更新的简短文本(一般信息发布字数在140个以内)并可以公开发布的博客形式。
微博包含海量的数据信息,它允许任何人阅读或者只能由用户选择的群组阅读。
目前微博已经成为网民获取信息的重要途径之一,微博从满足人们弱关系的社交需求上逐渐演变成为大众化的舆论平台,越来越多机构及公众人物都通过微博来发布或传播信息。
微博的三大特点:
(1)便捷性。
微博网站即时通讯功能非常强大,通过QQ和MSN直接书写,在有网络的地方,只要有手机就可及时发布微博,更新自己的实时信息。
类例于一些大的突发事件或引起全球关注的大事,如果有微博在场,利用各种手段在微博客户端上发表出来,其实时性、现场感以及快捷性,甚至超过所有媒体。
(2)背对脸。
与博客上面对面的表演不同,微博上是背对脸的交流,就好比你在电脑前打游戏,路过的人从你背后看着你怎么玩,而你并不需要主动和背后的人交流。
可以一点对多点,也可以点对点。
当你follow一个自己感兴趣的人时,两三天就会上瘾。
移动终端提供的便利性和多媒体化,使得微博用户体验的粘性越来越强。
(3)原创性。
在微博上,140字的限制将平民和莎士比亚拉到了同一水平线上,这一点导致大量原创内容爆发性地被生产出来。
微博集成了手机短信、博客与社交网站的优点,将消费者从原来单纯的信息接收者变成了接收和发布信息的完全参与者,从而让社会走进了全民记者时代。
各行业、各领域的科研人员在社交网络现有基础上,开展了大量与微博相关的研究和实践工作。
微博的流行给原有的企业沟通方式造成了前所未有的冲击,如何有效地利用微博已成为当前企业界和社会化营销理论的重要问题。
现阶段,随着微博网络影响力的快速扩大,政府部门、学校、知名企业、社会公众人物均开通了微博。
随着公众的参与,微博成为了一个强大的虚拟社会,微博已经是网络信息的重要来源,如何用于快速有效地采集微博信息已经成为一个具有重要应用价值的研究。
在各大微博平台飞速发展的同时,微博平台也为开发者和研究者提供了良好的数据获取方式。
Twitter、新浪微博、腾讯微博等微博平台都提供了openAPI。
如今各大微博平台如此风靡,在海量用户数据,关系数据及内容数据的环境下,各大微博平台通过openAPI[2]的方式使得大量用户可以在其平台上开发出各式各样的应用,提高平台的服务质量,同时也为社交网络研究者提供了以网站服务方式对外的数据接口,这其中就包括大量数据下载的API,为针对微博平台的相关研究工作提供了优良的数据通道。
目前,尚没有一个系统直接提供了微博数据并进行相关分析。
因此需要开展对微博的信息采集研究。
本文的主要工作就是要开发一套基于JAVA的新浪微博信息自动釆集程序,为社交网络舆情研究、网民行为分析等系统提供满足个性化服务的丰富的信息资源。
因此,研究与设计新浪微博信息采集系统不仅具有较强的现实意义,也具有较强的理论研究意义。
1.2国内外研究现状
目前国内外对社交网络的信息采集技术做了很多研究,也编写了很多开源的采集框架。
国外学者主要是针对网络爬虫技术做出了一系列研究。
Fish[3]系统是最早的主题网络蜘蛛模型。
它是一个基于客户端的实时信息检索系统,它假设相关页面在逻辑上彼此接近,采用深度优先算法搜索相关页面,并用一组关键词和短语判断页面的相关性。
Hersovici[4]对Fish系统进行了改进,它从一个特定点开始并跟踪相关文本的链接,使用向量空间模型来计算页面的相似度,根据链接周围文本价值和链接的“继承"价值决定优先级及爬行的深度。
Cho[5]提出了通过先爬行更重要的网页使爬行更有效。
他讨论了几种评价链接重要性的方式,提出了基于“驱动查询”(DrivingQuery)相似度、页面入度(Backlinks)、PageRank和页面位置的链接排序方法,并得出结论:
PageRank指导的爬虫表现最佳。
此后,PageRank算法和Kleinberg提出的HlTS算法作为两种主要的链接分析算法很快被众多研究者用于指导主题爬虫预测URL的重要性,目前很多用于URL评价的Web分析算法都可以在不同程度上视为这两种算法的变体。
印度理工学院的学者Chakrabarti等[6],利用已分类的实例集训练分类器,来衡量页面与主题的相似度,并用于指导搜索顺序。
Diligenti[7]从相关页面出发,构建“语境图”和分类器,并根据语境图的层次预测距离相关页面的远近,较近的页面较早访问。
Estert[8]采用“隧道”技术指导搜索,当搜索精度低于某一预先定义的阈值时,则将主题范围增大,搜索未来回报较大的链接。
Aggarwal[9]将页面内容、页面的URL结构抽象为页面特征,并利用它们构建Web的概率模型,用于预测链接的价值。
目前在国内也有很多学者对社交网络的信息采集技术进行研究,很多都是以新浪微博为例。
吴斌杰等[10]提出了基于API的信息采集方法,然后设计了一个信息采集系统,能够对新浪微博的相关信息进行采集。
康捷[11]等人提出了基于新浪微博API与基于页面解析的新浪微博数据获取方案。
程序逻辑控制API调用方法与频率,获取JSON对象并解析实现高效数据获取。
同时将传统的网络爬虫结合网页解析技术结合API同时使用,解决了因API接口开放不完善,且因在返回结果数量上限与调用频率方面的限制,导致不能有效实现新浪微博数据的全面获取的问题。
郭颖为[12]设计并实现了基于多生产者多消费者模型的网页信息采集与存储的网络爬行器,采用多线程的方式分别对每类结构化的数据进行存储。
为了进一步提高爬行器的效率,文中利用新浪微博API接口对微博用户的社交信息进行辅助采集。
冯典[13]设计并实现了一种可根据数据种类的不同,创建多种爬虫的数据采集系统,一方面使用多线程技术大幅提高爬虫的效率,另一方面,创造了多AppKey复用机制,突破了新浪对API调用频率的限制,保证了爬虫可以连续不间断的工作。
1.3论文主要工作
本文主要工作是研究微博数据的抓取方式,并实现对微博授权用户的微博信息的主题采集,主要工作有:
(1)微博API研究
利用微博系统的SDK获取数据,该技术通过调用微博平台提供的API来获取数据。
这部分工作需要利用微博系统的SDK获取数据的工作流程,调用API需要通过用户身份的鉴权,目前使用OAuth鉴权。
其优点是数据准确快捷,很少因微博平台的变化而变化,但缺点是接口提供商限制的因素多且不稳定。
(2)系统设计与实现
设计一个良好的界面,实现对微博授权用户信息的主题采集,并能够对采集信息进行保存以便于后续研究。
1.4论文结构安排
本论文主要开发了基于windows平台的社交网络的采集系统,使用新浪微博提供API结合第三方SDK,对新浪微博上的用户数据进行采集。
本文分为四章进行阐述。
第一章绪论。
介绍论文的研究背景及意义,当前课题的研究现状,论文的主要工作以及结构安排。
第二章系统相关技术概述。
对论文所用的相关技术进行介绍,重点介绍了JAVA的GUI图形界面和多线程以及新浪微博开放平台,详细介绍新浪微博授权过程及API调用流程。
第三章信息采集系统设计与实现。
重点阐述新浪微博的信息采集方法。
首先对系统的功能及结构进行分析,然后详细介绍系统总体路线设计。
最后对所设计的平台进行验证,分析其效果。
第四章总结与展望。
此章对整篇文章的工作进行了总结,并提出了下一步的工作方向。
第2章系统相关技术
2.1JAVA技术简介
JAVA由SunMicrosystems公司于1995年5月推出的一门面向对象的程序设计语言,用它编写的应用程序具有跨平台的特征。
JAVA框架下包含三大平台:
JAVASE、JAVAEE和JAVAME。
JAVASE是JAVA平台标准版的简称,用于开发服务器、桌面和嵌入式设备中的JAVA应用程序;JAVAEE一种用来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,JAVAEE的基础是JAVASE,JAVAME是一个用来为移动平台提供的基于JAVA环境开发的技术规范的集合。
JAVA技术凭借着它的高效性、安全性、通用性和平台移植性,目前被广泛应用于个人PC、移动电话、科学超级计算机、游戏控制台和互联网等领域。
在全球云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景。
本文中主要采用JAVASE进行系统设计。
无论是采用JAVASE、JAVAEE还是JAVAME开发,图形用户界面都是不能逃避的问题。
现在的用户总希望开发的软件功能丰富强大而又操作简单,这就需要开发者注重界面的友好性,GUI就成了JAVA开发者不可或缺的重要课题。
JAVA使用AWT和Swing类库来完成图形用户界面的编程,其中AWT的全称是抽象窗口工具集(AbstractWindowToolkit),它是Sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来又提供了Swing库[15]。
JAVA开发者通过使用AWT和Swing提供的组件库,程序只需创建所需的图形组件,并用合适的布局管理器来组织这些组件按照特定的方式排列,就可以开发出非常完美的用户界面。
如果想要实现用户与界面之间的交互,开发者还应为程序添加事件监听,让事件处理来完成响应用户动作。
本论文作品主要用到了Swing库中的JButton、JLable、JTextField、JTable、JScrollPanel、JFrame、JPanel等组件,用到了AWT库中的BorderLayout、FlowLayout等布局管理器组件。
2.2新浪微博开发平台
目前,新浪微博提供了相应的API供本系统使用,通过调用这些API,本系统可以获取如微博内容、用户关系、用户信息、用户标签等信息。
要使用这些API,需要先创建一个自己的应用,然后进行认证,认证完成后即可使用API获取新浪微博的数据了。
2.2.1微博JAVASDK
微博JAVASDK是新浪为JAVA开发者提供的专门用于访问新浪微博的接口,通过微博JAVASDK,第三方微博应用可以很方便的访问微博提供的API接口,获取到需要的信息。
微博JAVASDK的整体架构包含如下几个:
src:
weibo4j封装了大部分接口,包括授权,timeline,用户等常见接口
weibo4j.http包含了https请求的封装
weibo4j.model包含了user,status等实体类
weibo4j.org.json完成json解析的各种方法
weibo4j.util包含了请求api接口时候所需要的工具类
examples:
里面包含了封装接口的各个测试demo
2.2.2微博应用的创建
新浪的微博开放平台[2](WeiboOpenPlatform)是新浪微博为开发者提供的一个开放平台,在此平台上,你只需要建立自己的应用,就可以使用新浪微博所提供的所有功能。
而用户只需要对你的应用进行授权,即可使用你的应用,而你的应用也可以访问用户的信息了。
应用创建的流程图如下图所示:
图2.1新浪微博创建和开发应用的流程图
如上图所示,首先使用自己的新浪微博账号进行登陆,如果没有的话,就要先注册,然后再登陆到新浪的微博开放平台。
成功登陆以后,首先要填写个人的基本信息,因为如果此应用上线运营,需要保证此应用的合法性。
填写了个人信息后,就可以获得开发者的身份,这时就可以创建应用了。
创建应用时,除了填写应用的基本信息,包括名称、用途、应用网址以外,最重要的是应用的类型。
新浪微博的开放平台提供了三种类型的应用,这三种应用的特征如下表所示:
表2.1不同种类的应用及其特征
网站接入类应用
网站接入类应用是新浪微博针对第三方网站提供的社会化网站接入网络接入方案。
接入类应用可以让开发者创建的网站支持用户使用微博的账号登录,这样可以使用户更方便的浏览网站上的内容,以更好的推广网站。
站内应用
由于新浪的用户量巨大,接触到站内应用的人数量很大,便于大面积的提高应用的热度。
站内应用可以优先使用新浪微博的通知、邀请接口,另外站内应用比其他种类的应用具有更高的优先权,在新浪官方的应用广场上将获得更多的推荐机会,而且在同等的条件下,测拭期间的站内应用将比其他应用得到优先推荐。
移动应用
移动应用类可以满足用户使用手机、平板电脑平台分享信息的需求。
从上表可以看出,为了获取新浪微博中的内容,本系统采用了站内应用的方式创建应用,这是为了获得更高的权限,以获得更高的API调用频率。
另外,为了能以更高的频率调用API,也希望提供给更多人使用,可以使用更多的账号来访问API,这也是本系统创建一个站内应用的原因之一。
创建完站内应用后,应用将会获得一个AppKey和一个SecretKey,这两个Key是以后会用到的。
其中AppKey是应用在开放平台中的身份标志,每次应用要调用API时,都需要提供AppKey和使用人账号,这样方便新浪统计某个应用的使用频率,这样既能保证某个应用不能频繁调用API,避免出现恶意攻击新浪的事件,另一方面,新浪也可以通过使用频率来进行热门应用的推荐。
而AppSecret是新浪微博分配给某个应用的密码,这是为了保证其真实性,这个是唯一的,这样可以防止其他应用冒充某个热门应用。
2.2.3OAuth2.0授权认证
OAuth协议[16]的全称是开放式认证协议,该协议为用户资源的授权提供了一个安全、开放而又简易的标准。
与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的用户名和密码等敏感信息。
即第三方无需使用用户的用户名和密码就可以申请获得该用户授权的资源。
Accesstoken(访问令牌)是OAuth协议的核心,它代表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JAVA 社交 网络 信息 采集 系统 研究 设计 毕业设计