陳向陽,陳麗萍,姜振國
(河北大學計算機科學與技術學院,保定 071000)
基于API接口的騰訊微博數據挖掘
陳向陽,陳麗萍,姜振國
(河北大學計算機科學與技術學院,保定071000)
微博是近幾年發(fā)展起來的一個信息交互平臺,通過該平臺可以接收或發(fā)送微博信息。用戶可以通過關注感興趣的人,接收關注人的信息,也可以在計算機或移動通信終端發(fā)送自己感興趣的信息,其簡單快捷的操作方式和發(fā)布信息的隨時隨地性,使這種互動形式的信息傳播成為互聯網的一大亮點,是Web 2.0時代下產生的一種新型社交網絡。Twitter是美國最大的微博網站,自2006年創(chuàng)建以來[1],微博的使用者就增長迅猛,僅2009年Twitter的使用者就增長了25倍多,和其他社交網站Facebook以及LinkedIn相比,增長率是二者總和的10倍[2]。國內的新浪微博和騰訊微博在開通之初,用戶數量也增長迅猛,均在不足一年半的時間內超過1億用戶。中國互聯網信息中心(CNNIC)報告顯示,至2011年底,中國微博用戶達到2.5億[3]。
微博的用戶群基數巨大,信息傳播迅速,而且微博平臺上有大量的媒體和商家用戶,這些用戶之間的關系和信息的傳播方式,對商品的推介和輿情的監(jiān)控有重要意義,因此基于微博數據的分析和研究已成為一個非常有價值的研究方向。國外多以Twitter為對象來研究微博。Teutte等人[4]分析了Twitter的網絡動態(tài)性,通過對出度和入度的增長和網絡使用密度等的分析,研究其對微博網絡變化的影響。Shen[5]等人研究了微博中Spam信息的傳播方式,并通過文本挖掘對微博信息的內容進行了分析。近年來國內對微博的研究也越來越多,楊長春[6]等從用戶是否活躍,博文是否被轉載和評論設計了新的博主評價指標,并把該指標作為PageRank算法的因子提出來不同的核心用戶發(fā)現算法。廉捷等[7]提出了采用新浪微博API來取得新浪微博數據的方法,并與傳統(tǒng)的的網絡爬蟲技術相比較,二者結合可以高效完整地獲取新浪微博數據。
近幾年國內對微博的研究越來越深入,從定性研究逐漸進入定量分析,對數據的需求也就越來越多,但多數文章并無明確說明微博信息的提取方式,使得進行微博研究的第一項工作“信息獲取”模糊不清。因此本文著重研究微博信息的獲取方式。大多數微博信息挖掘以新浪微博數據為研究對象,但近期新浪微博提高的數據獲取門檻,普通的研究者無法從其獲取數據,所以本文以同樣有代表性的騰訊微博平臺為研究對象,研究其數據挖掘方式。
騰訊微博開放平臺為開發(fā)者提供了獲取微博數據的接口。利用這些API接口,用戶可以方便地獲取需要的微博信息,或在微博中傳播信息。
獲取互聯網的數據一般是通過網絡爬蟲實現的。但網絡爬蟲對計算機的配置和網速有較高的要求,運行效率較低。而騰訊微博開放API接口可以更加簡潔地獲取相應的數據,為程序高效獲取微博數據提供保障。因此文中研究使用API接口獲取微博信息的方法及限制。
騰訊微博官方提供的API接口共有22類,幾乎涵蓋了所有的微博信息操作方法,如表1所示。同時官方也對API的調用權限進行了限制,為了均衡服務器的負載,對用戶進行分級。將用戶權限分為三級:初級授權、高級授權和騰訊合作方授權。其中初級授權每個API的調用次數為不超過1000次/小時。
表1 騰訊微博接口
為了能夠使用微博信息平臺,獲取需要的微博信息,用戶需要獲得信息平臺的資源授權,過程如下:
(1)為了能夠獲得使用騰訊API的資格,我們必須向官方申請成為開發(fā)者。用戶只需在騰訊微博開放平臺網站上登錄QQ賬號并申請成為開發(fā)者,然后提交詳細信息后即可。在1~2工作日內申請就會被通過,獲得使用騰訊微博信息的許可權,成為騰訊微博的開發(fā)者。
(2)創(chuàng)建應用,獲取使用API的權限,即得到API接口驗證序號 (App Key)和API接口密鑰 (App Secret),對用戶發(fā)出的請求進行數字簽名。
(3)獲取OAUTH認證。所謂認證是指第三方軟件不知道用戶的用戶名和密碼,為用戶申請獲得提供方資源的授權。OAUTH認證是獲取用戶資源授權的一個安全、公開而又簡單的標準。當前,騰訊微博對第三方授權采用的是OAUTH 2.0協(xié)議。獲取認證就是獲取訪問令牌 (Access Token),是第三方獲得資源授權的憑證,是第三方訪問API資源的鑰匙。其基本流程如圖1所示:
圖1 獲取OAUTH認證的流程
其中,對于彈出的回調信息是如下的URL:
http://www.myurl.com/example?code=CODE&openid =O PENID&openkey=OPENKEY
其意義如下表2所示:
表2 回調信息字段意義
為方便微博API的調用,騰訊為用戶提供了一個SDK,使用權限認證、數據采集和數據分析等各項功能都被打包在其中。SDK是以API為基礎的,因此基于SDK開發(fā)的工程能極大地減少開發(fā)程序的工作量。但作為一種新的網絡應用,微博的SDK開發(fā)并不完善,使用SDK時可能會出現一些功能性的錯誤,所以應區(qū)別對待,必要時進行代碼修改和完善。
目前已開發(fā)并發(fā)布的SDK包括支持Java、C++等多種語言版本,本文采用Java語言作為開發(fā)工具。例如:在使用騰訊官方API提供的SDK包,抓取的數據在Eclipse下顯示是亂碼,所以必須對其進行修改。可將SDK中的 QHttpClient.java類的http請求方法中的以下部分代碼進行修改
這樣從服務器讀來的數據才可使用。
由于騰訊微博的API對使用者的請求次數有限定,所以本文在獲取數據時,一方面通過程序控制訪問頻率,另一方面在每一次訪問中盡可能多地取得系統(tǒng)允許的信息量。程序需要通過線程控制訪問頻率,因為如果短時間內,程序運行中較頻繁地調用API接口,雖然總的訪問次數未超過每小時的1000次,但因為在這段時間內高度頻繁地調用,系統(tǒng)會認為用戶訪問達到上限,所以通常每調用100次請求后,程序將暫停幾分鐘,從而避免超過騰訊API對于用戶請求的限制。當請求訪問次數達到API請求上限時就停下來,等下一個允許時間段再讀取。而在每一次信息讀取中,采用不同的函數方法效率也會不同。例如為了能得到一個人好友列表中所有的信息,如果使用info方法獲取用戶信息,每次只能得到一個用戶的信息,而用fanslist可以得到30個用戶信息。這樣就減少了API的調用次數,從而能在相同調用次數下得到更多的用戶信息。
獲得OAUTH身份認證,并通過騰訊API可以根據請求返回特定的XML或JSON文件。微博中用戶狀態(tài)與信息,可能包含一些個性化字符格式,這些字符會導致整個XML文檔無法被正確解析,因此返回方式采取JSON格式更具穩(wěn)定性[7]。
JSON數據格式非常簡單,文件沒有明顯的格式信息,用來傳輸信息簡單靈活,如:
tweet:用戶最近發(fā)的一條微博
{text:微博內容,from:來源,id:微博id,timestamp:微博時間戳}
和結構化的XML文件不同,復雜的JSON文件沒有使用格式化標簽來標記有意義的內容,對于人來說處理起來不太容易,但由于JSON文件結構簡單,因此通過計算機強大的處理能力來分析JSON文件具有很強的優(yōu)勢。另外JSON文件中因為沒有屬性標簽,所以和XML文件對比,同樣內容的查詢結果,返回的XML文件要比JSON文件更大,因此作為海量微博信息的媒介工具,JSON文件更合適。
例如騰訊FRIENDSAP中用戶粉絲列表方法聲明為:userFanslist(oAuth,format,reqnum,startindex,name,fo-penid,mode,install)。其中參數format需要設置成JSON,返回結果為JSON格式的字符串,然后通過解析程序對JSON格式的字符串進行解析獲得用戶需要的信息。將解析出來的信息存儲到數據庫,即可進行相關的數據分析和研究。
基于API接口提取信息效率較高,方便迅捷。但普通用戶無法自由地從微博服務商那里獲得完整的API,因此使用API的方式只能獲得部分微博數據。如在騰訊微博中,很多重要查詢功能的API是不開放的,同時對于開放的API,每次查詢的返回結果也有上限,所以每次查詢需要記錄查詢位置,往往會出現重復查詢結果,需要人工篩選。微博研究最關心的問題是那些具有大量信息的用戶,而這些限制正好阻礙了研究信息的獲取。同時對用戶每小時的訪問次數也有限制,所以為了獲得足夠的研究數據,用戶往往需要較長的數據獲取時間。因此用戶在獲取微博信息時應該結合其他的方法如爬蟲等,來完善數據信息。
[1]Pieter N,Michiel H.Mining Twitter in the Cloud:A Case Study[C].Proceedings of the 2010 IEEE 3rd International Conference on Cloud Computing,2010:107~114
[2]Abraham R,Martinez T.Twitter:Network Properties Analysis[C].Proceedings of the CONIELECOMP 2010-20th International Conference on Electronics Communications and Computers,2010:180~184
[3]文坤梅,徐帥,李瑞軒等.微博及中文微博信息處理研究綜述[J].中文信息學報,2012,26(6):27~37
[4]Teutte G,Kleinberg J,Watts D J.The Structure of Information Pathways in a Social Communication Network[C].Proceedings of SIGKDD,2008:435~443
[5]Shen Yang,Li Shu-chen,Ye Xiao-xiao,et al.Content Mining and Network Analysis of Microblog Spam[J].Journal of Convergence Information Technology,2010,5(1):135~140
[6]楊長春,俞克非,葉施仁等.一種新的中文微博社區(qū)博主影響力的評估方法[J].計算機工程與應用,2012,48(25):229~233
[7]廉捷,周欣,曹偉等.新浪微博數據挖掘方案[J].清華大學學報(自然科學版),2011,51(10):1300~1305
Microblog;API Interface;Information Extraction
Data Mining of Tencent Microblog Based on API Interface
CHEN Xiang-yang,CHEN Li-ping,JIANG Zhen-guo
(School of Computer Science and Technology,Hebei University,Baoding071000)
1007-1423(2015)09-0047-04
10.3969/j.issn.1007-1423.2015.09.011
陳向陽(1977-),女,河南三門峽人,碩士研究生,講師,研究方向為數據挖掘
陳麗萍(1974-),女,河北保定人,碩士研究生,講師,研究方向為數據挖掘
姜振國(1992-),男,河北保定人,本科,學生,研究方向為軟件工程
2015-01-04
2015-02-10
以騰訊微博為對象,介紹它提供的API接口,以及如何成為授權用戶和微博信息提取及處理的方法。利用API接口可以高效迅捷地獲取微博信息,但微博服務商并不完全開放API接口,而且對單位時間內的訪問次數也有限制,因此對于所需的關鍵微博信息如果無法通過API得到時,需要結合其他方法獲取。
微博;API接口;信息挖掘
保定科技局計劃項目(No.13ZG017)
Takes Tencent microblog as the research object,introduces the API interface of it,and the method of becoming an authorized user and microblog information extraction and processing.Microblog can access the information efficiently and quickly,Microblog API interface service doesn't completely open API interface,but also has a restriction on the access times of unit of time,so for the desired key microblog information if it can't get through API,then needs to combine with other methods to obtain.