APP下载

社交网络Twitter的推文抽取技术研究*

2012-07-11刘晓然严岳松

舰船电子工程 2012年9期
关键词:推文开放平台应用程序

游 彬 刘晓然 李 宁 严岳松

(海军指挥学院信息系 南京 211800)

1 引言

随着互联网技术的发展,时至今日,网页内容存在多样性和动态性等特点[1],为了有针对性的抓取互联网信息资源,目前学者对网页和网络的分类如表1所示。

表1 网页和网络的分类

隐藏在互联网数据库中的动态网页,没有超链接的互相关联,其信息量却占据整个互联网的绝大部分。这部分网页有的只能通过网站的查询接口提交来动态生成,有的需要注册和登录之后才能查看,因此传统的Web处理相关技术研究和应用无法获取这些信息,学者开始研究针对动态网页的信息采集技术。

目前,随着信息化技术的发展,信息系统已经成为不可或缺的基础设施,并广泛应用于社会生活中[2]。对于社交网站推特(Twitter)等深层网络,其信息内容一般较短,但时效性很强,观点突出,因此推特的140字推文(tweets)限制看似缺陷,实则为极大的优势:全球移动通信网络的扩张使得这种极度适合手机阅读的传播方式继续爆发,对于各种突发新闻,推特比CNN等传媒巨头更有优势,推特上的推文信息完全可以作为商业竞争或军事情报的素材。

2011年利比亚战争初期,北约发言人、英国皇家空军中校麦克·布兰肯首次确认了推特(twitter,国外著名的社交网站)作为情报工具的事实:他们从推特上获得了很多关于卡扎菲武装在受困城市班加西和的黎波里的动向的消息[3~5]。推特在情报获取或舆情分析等应用领域具有广泛的前景。

本文研究了Twitter等社交网站所遵循的协议,并在Java环境下实现了这类网站的信息抽取的关键代码,以期待为网络舆情等信息抽取应用领域提供新的动态网络的信息来源。

2 OAuth协议认证

2.1 OAuth协议简介

OAuth(开放式验证协议)是一种开放的协议,由IETF(Internet Engineering Task Force,Internet工程任务组)起草,目前最新版本为OAuth2.0第21版[6],支持用户在不同的Web站点共享其私有数据和凭证,但仅在拥有数据的原始Web站点公开数据。

2011年互联网厂商如腾讯、新浪微博、人人网等都推出了各自的开放平台,第三方开发者可以基于开放平台的开放API开发各种各样的应用[7],大多数开放平台采用了较新的 OAuth2.0版本[8],也有部分厂家采用了OAuth1.0a版本,或者两种版本共用,如表2所示。

表2 各类开放平台的OAuth版本

OAuth协议支持用户将存储在一个Web站点的私有资源数据(如私人照片)与其他站点共享,而不会将用户的凭证(如用户名和密码)泄漏给除拥有用户数据的Web站点之外的其他站点。采用OAuth作为其中一种身份验证协议的Web站点将增强用户的隐私保护和安全性。

2.2 OAuth协议的原理

在OAuth中有三个主要角色:用户、使用者和服务提供商。如表3所示。

表3 OAuth协议中的主要角色

为了抓取twitter网上所关注对象的推文内容,首先需要注册twitter帐户。用户、使用者和服务提供商twitter之间的OAuth交互如所示。OAuth协议认证虽然有用户登录的过程[9],但是,其登录始终是在服务提供商的页面登录,而并非在第三方资源数据使用者(如桌面应用程序或Web程序)的页面,从而保证了用户的登录名和密码不泄露给第三方。

图1 用户、应用程序和twitter之间的OAuth交互

工作流程描述如下:

1)拥有Twitter帐户的用户通过第三方应用程序要求查看推文内容;

2)应用程序向Twitter网请求Request_Token,Twitter返回临时未授权Request_Token;

3)应用程序引导用户至Twitter登录授权,授权后Twitter引导用户回到应用程序;

4)应用程序向Twitter请求Access_Token;

5)应用程序用返回的Access_Token访问用户的推文;

6)应用程序将推文反馈并展示给用户。

从上述分析可知,整个过程是安全可信的,除非第三方Consumer是不可信的应用程序,在引导用户至Twitter登录界面时使用钓鱼网站,获取用户的帐号名和密码。

推特API与twitter4j目前Twitter仅支持HTTP Basic Authentication验证机制,通过API的方式开放一些应用接口,除了部分API(如公共时间线public timeline)外,所有的API方法都必须要求用户认证,所有的返回都与认证用户相关[12]。例如,尝试获取一个设置为私密的且不是您的好友的用户信息时,将会返回失败状态。根据用户特定的请求返回对应特定格式的数据,Twitter目前支持以下的四种数据返回格式:XML、JSON、RSS、Atom。与获取推文有关的部分接口方法如表4所示。

表4 部分API接口方法

Twitter4J是一个非官方的封装了Twitter API的Java客户端开发包,使用Twitter4j可以在应用程序中集成Twitter的服务,提供的功能包括:获取朋友,特殊用户的时间线(Timeline),收发私信(Direct Messages),搜索推文等,其主要特点是:不依赖第三方开发包,支持OAuth协议。

3 基于OAuth协议和twitter4j的推文抽取

图2 第三方Consumer程序的流程图

文献[1]针对 Twitter、Facebook和人人网等深层网络(Deep Web,主要指动态网络资源),使用Twitter API调用设计了增量式爬虫,能较好地抓取关注对象的Twitter信息。为了使抽取的推文信息更具针对性,论文将根据用户设定的关键词,调用基于OAuth协议的twitter4j的编程接口,在Java环境下实现Twitter的关键词推文抽取,第三方Consumer程序的流程图如图2所示。

程序关键代码及其说明如下:

在上述代码的验证身份信息和访问权限部分,consumerKey和consumerSecret和accessTokenSecret是两对密钥,需到 Twitter网(https://dev.twitter.com/apps/new)使用已注册的帐户名和密码申请,两对密钥背后的安全机制为OAuth协议。密钥的功能说明如下:

consumerKey和consumerSecret,代表客户端应用程序,搜索应用程序将用这对密钥来访问您所创建帐户的Twitter Web服务。

AccessToken和AccessTokenSecret,结合使用来签署搜索应用程序发送到Twitter Web服务的请求。

在关键词查询部分,用户可设定searchKeyword,如在实验中设定为“Obama”,最后将推文(tweets)存入列表,调用getFromUser()和getText()函数在控制台打印。

4 结语

因其快捷的信息传播方式,Twitter在时效性上已超越了广大媒体,Twitter已不再局限于个人的推文收发,而深受政府和企业青睐。研究社交网络的信息抽取技术能为情报分析工作提供有效的信息来源和途径。

本文在Java环境下实现了Twitter推文信息的抽取,如何突破API每小时150次访问的限制,以抽取更多的信息量,以及如何判断信息的可信度,整合抽取回的信息,是下一步亟待解决的问题。

[1]胡亚楠.社交网络获取技术与实现[D].哈尔滨工业大学,2011.

[2]游彬,韦伟,刘晓然,等.基于主动网络的军事化安全防护体系研究[J].舰船电子工程,2011,31(11):1-3.

[3]Spencer Ackerman.Twitter:利比亚战争中的新式武器[EB/OL].译言 网,(2011-06-12)[2012-4-15].http://article.yeeyan.org/view/232379/200519?from=rss_related.

[4]张品秋.北约利用“推特”网站收集利比亚情报[N].中国日报,2011-6-16.

[5]社交网站被纳入军方情报网“推特”助力北约空袭[EB/OL].中国网络 电 视 台,(2011-6-28)[2012-4-15].http://news.cntv.cn/20110628/101801.shtml.

[6]OAuth2.0V.21[S/OL].[2011-10-08].http://tools.ietf.org/html/draft-ietf-oauth.

[7]刘镝,张智江,张尼.基于国内开放平台的Oauth认证框架研究[J].信息通信技术,2011(6):43-45.

[8]时子庆,刘金兰,谭晓华.基于OAuth2.0的认证授权技术[J].计算机系统应用,2012,21(3):260-264.

[9]刘为,郝梅.利用OpenID和OAuth进行安全授权及风险防范的分析[J].武汉商业服务学院学报,2011,25(5):90-92.

[10]白普易,任明秋,王学军,等.雷达抗干扰性能评估指标分析与测试平台设计[J].计算机与数字工程,2011,39(11).

[11]杨文君,林伟.基于DSP5402的雷达测速系统硬件、软件设计[J].计算机与数字工程,2012(5).

[12]月光博客.Twitter API中文文档[EB/OL].(2010-4-20)[2012-4-15].http://www.williamlong.info/archives/2152.html.

猜你喜欢

推文开放平台应用程序
基于百度地图开放平台的导航电子地图课程实践教学研究
基于在线开放平台的混合式课堂教学模式构建与实践
特朗普上任至今发推文1.1万条
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于AliGenie语音开放平台的传统家居智联网解决方案
特朗普推文哪条最招人烦
开放平台发展迅速
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序