

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 微博信息抓取系統(tǒng)</b></p><p> 【摘要】針對微博中龐大的數據量和用戶關系群,本文提出并實現了基于新浪開放平臺與Oauth2.0的微博信息抓取系統(tǒng)。該系統(tǒng)主要實現的功能有:(1)微博大廳的滾動微博及其評論的抓取(2)微博用戶的好友及其相互關系的抓取。通過線程池和數據庫實現了微博信息的抓取和存儲,并通過prefuse的API,圖形化的顯示出用戶關系。從
2、實際運行效果分析,該抓取系統(tǒng)能夠滿足各種SNS應用的內容填充,及網絡用戶社會網絡關系分析。</p><p> 【關鍵詞】Oauth2.0;新浪開放平臺;社會網絡關系;prefuse</p><p><b> 引言</b></p><p><b> 研究背景及意義</b></p><p> 隨
3、著移動互聯網的發(fā)展,中國迎來了真正的微博時代。微博由于其內容簡短,寫作門檻低,發(fā)布渠道便捷化,多樣化,同步化,使得信息生產趨于零時間。與其他信息交流模式不同,微博最大的特點在于技術上的便攜性。2009年,3G牌照的發(fā)放標志著移動互聯網時代的到來,移動手機和互聯網這兩種在中國發(fā)展最為迅速的媒介開始融合在一起,為微博的快速擴張做了技術上的準備,與傳統(tǒng)博客相比,微博對用戶能夠產生很強粘性的原因,就在于其在技術上無可比擬的便攜性。用戶可以通過各
4、種方式登陸微博,發(fā)表微博。尤其是手機和微博的綁定使得這以新媒介對微博用戶的接近性滿足了4A的元素,即Anything,anywhere,anyone,anytime。任何用戶可以在任何時間任何地點發(fā)布任何內容。從此,人們的信息交流得到了空前的大解放。微博信息抓取系統(tǒng)通過開放平臺的API抓取我們所需要的信息,為各式各樣的SNS[1]社區(qū)應用在運營初期充實其數據量和用戶量,以吸引更多的用戶關注和使用。SNS社區(qū)交友是現在網絡用戶之間相互交流
5、的最主要方式。當前最流行的SNS網絡莫過于開心網,人人網,以及各大微博了,其中以新浪微博的活躍用戶量最為龐大,本課題主</p><p><b> 本課題主要工作</b></p><p> 本文主要解決的問題有抓取新浪微博的微博大廳數據已經其相關的評論和用戶信息。包括新浪微博的Oauth2.0認證,通過調用新浪微博的API,得到并解析服務器返回的json文檔,建立相
6、應的數據庫,儲存在數據庫中。并通過Prefuse對抓取的微博用戶好友關系進行了可視化的顯示。實現全自動的抓取、解析、和數據存儲過程。 大大提高了信息收集的工作效率,并大大降低了信息收集的出錯率。滿足了企事業(yè)公司對微博信息的內容需求和網絡用戶的社會關系分析。</p><p><b> 新浪微博開放平臺</b></p><p><b> 微博用戶的授權認證&
7、lt;/b></p><p> 2.1.1 新浪微博應用創(chuàng)建</p><p> 新浪微博開放平臺允許所有微博用戶創(chuàng)建自己的應用,用戶只要填寫清楚開發(fā)者的詳細信息和應用的相關資料就可以創(chuàng)建自己的應用了。應用創(chuàng)建成功后,開發(fā)者將會獲得該應用的APP KEY和Sercret Key。我們就是通過這兩個key進行相關的技術開發(fā)工作。并且通過這兩個key唯一標識我們的應用。其新浪微博應用創(chuàng)
8、建和發(fā)布的流程圖如圖1所示。</p><p> 圖 1 新浪開放平臺應用創(chuàng)建流程及發(fā)布流程圖</p><p> 2.1.2 OAuth2.0授權認證</p><p> OAuth2.0是從2006年開始設計OAuth[2]協議的下一個版本。OAuth(開放授權)是一個開放標準,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯系人
9、列表),而無需將用戶名和密碼提供給第三方應用。OAuth允許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每一個令牌授權一個特定的網站(例如,視頻編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth允許用戶授權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不需要分享他們的訪問許可或他們數據的所有內容。</p><p>
10、 相比于OAuth1.0,OAuth2.0整個授權驗證流程更加簡單和安全。也是新浪微博開發(fā)平臺未來最主要的用戶驗證和授權方式。使用新的2.0協議進行授權認證。開發(fā)者只需要調用oauth2/authorize接口引導用戶授權,并在授權后重定向的網頁得到code碼后向服務器oauth2/access_token接口換取access_token,就可以使用這個access_token調用新浪微博的API了。</p><p&
11、gt; 其授權的基本流程如圖2所示:</p><p> 圖 2 OAuth認證基本流程</p><p> 雖然2.0的授權機制更簡單安全,但是越安全越說明其限制越多,其中access_token的有效期在開發(fā)測試階段只有24小時。在24小時之后就必須重新授權獲取新的access_token。而新浪微博的一些接口也有訪問頻次限制。在軟件開發(fā)測試階段,通常一個接口的訪問頻次限制在150次
12、/小時,當應用審核通過正式發(fā)布以后將會有更多更大的權限。其授權標準也會有一定的提升,訪問頻次的限制將提高,access_token的有效期也會延長。當然開發(fā)者也可以和開放平臺申請更高的訪問頻次和token有效期,開放平臺會根據你應用的類型和規(guī)模審核你的請求。</p><p><b> 新浪微博API</b></p><p> JSON數據交換格式</p>
13、;<p> JSON(Javascript Object Notation),是一種輕量級的數據交換格式[3] ,它是JavaScript的一個子集,但它是獨立于語言的文本格式,易于人閱讀和編寫,同時也易于機器解析和生成。它的這些特性使它成為理想的數據交換語言。</p><p> JSON構建于兩種結構。一種是鍵值對的集合形式,一種是值的有序列表。這些結構使得大部分現代計算機語言都以某種形式支持
14、它們,這使一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。與XML比較,JSON在Web數據交換處理上的更具優(yōu)勢。采用JSON來緩存元數據,便于存儲復雜的驗證數據,客戶端容易解析和使用。在具體實現上,通過服務器程序生成JSON存儲驗證數據和函數,利用AJAX技術設計客戶端函數來訪問元數據以驗證用戶輸入。實現的結果表明:由于使用JSON存儲復雜的元數據和驗證規(guī)則,該方案在保證安全性和可擴展性的同時,提高了驗證效率。</p&
15、gt;<p> statuses/public_timeline接口</p><p> 此接口[4]是用于返回最新的公共微博,也就是微博大廳的最新微博。該接口使用的是GET請求方式,返回的是JSON格式的微博數據。由于我們使用的是OAuth2.0方式授權,我們的請求參數將非常簡單。只需要將之前授權得到的access_token和需要請求的返回記錄條數count以及返回結果的頁碼page傳給服務器
16、就可以了。其請求參數說明如表1所示:</p><p> 表 1 public_timeline請求參數說明</p><p> 請求服務器成功之后會返回一串JSON格式的數組。數組中的每個元素就是一個微博信息。它包括了微博內容、微博發(fā)表者、微博評論和轉發(fā)次數等等重要信息。我們將其全部解析出來存儲在我們的數據庫中。該接口返回數據說明如表2所示:</p><p>
17、 表 2 public_timeline接口返回字段說明</p><p> comments/show接口</p><p> 此接口[5]是根據微博ID返回該微博的評論列表。該接口和上面的timeline接口使用方法基本上相同。但是它多了幾個可選參數以滿足我們個性化的需求:since_id參數可以指定返回比since_id時間晚的評論。max_id參數可以指定返回小于等于max_id的
18、評論。filter_by_author參數可以對返回的評論按照評論者類型進行篩選,例如可以只返回關注者的評論,或者是陌生人的評論,其請求參數說明如表3所示:</p><p> 表 3 comments/show接口返回字段說明</p><p> 請求服務器成功之后會返回一串JSON格式的數組。數組中的每個元素就是一個評論信息。它包括了評論內容、評論發(fā)表者、評論的微博和該評論的回復評論
19、等等重要信息。我們將其全部解析出來存儲在我們的數據庫中。該接口返回數據說明如表4所示</p><p> 表 4 comments/show接口返回字段說明</p><p> friendships/friends/in_common接口</p><p> 此接口[6]是用戶獲取兩個用戶之間共同關注人列表。選此接口的目的是使我們可以得到一個比較聚合的網狀關系集
20、合,以達到分析社會網絡關系的目的。在此,我選擇了一個熱門微博用戶的UID作為測試SUID。以微博大廳抓取到的用戶UID作為需要獲取共同關注好友的UID。來獲取他們的共同好友。其請求參數說明如表5所示:</p><p> 表 5 獲取共同關注人接口返回字段說明</p><p> 請求服務器成功之后會返回一串JSON格式的數組。數組中的每個元素就是一個用戶信息。我們將其全部解析出來存儲
21、在我們的數據庫中。該接口返回數據說明如表6所示</p><p> 表 6 獲取共同關注人接口返回字段說明</p><p><b> 社會網絡關系分析</b></p><p><b> SNS社區(qū)交友</b></p><p> SNS,全稱Social Networking Service
22、s,即社會性網絡服務,專指旨在幫助人民建立社會性網絡的互聯網應用服務,根據哈佛大學的心理學教授Stanley Milgram提出的六度分隔理論,即最多通過六個人你就能夠認識任何一個陌生人。按照六度分割理論,每個個體的社交圈都在不斷放大,最后成為了一個容納全世界人類的巨型網絡[7],這就是社會性網絡的早期理解。后來有人根據這種理論,創(chuàng)立了面向社會性網絡的互聯網服務,并通過“熟人的熟人”來進行網絡社交拓展,比如Friendster,wall
23、op,adoerme等。</p><p> SNS的實名制是用戶快速找到熟人的基礎,用戶真實信息可以形成用戶關系的真是相關性,這種相關性可以讓系統(tǒng)對用戶之間進行匹配。從而是用戶更快的找到自己的熟人。SNS用戶關系是實現信息傳播的渠道基礎,一維或者多維的用戶真實關系,讓用戶之間形成了一張巨大的社交網。這張網可以容納整個世界的人,從而形成一種聯動效應,</p><p> 但這種社交方式只是
24、人們社交拓展的一種方式,并非社交拓展的全部。在國內,SNS的的表現形式也越來越多樣,網絡用戶進行社交拓展的方式也越來越多。比如根據相同話題而進行凝聚的百度貼吧。根據相同興趣愛好而進行凝聚的開心網,豆瓣網。根據相同學習經歷而凝聚的人人網,QQ校友等等,都被納入了SNS的范疇。</p><p> 事實上,目前SNS網站已經成為了一種很火爆的互聯網現象,如果說美國SNS的高速發(fā)展是因為具有龐大的用戶基礎,那么我國SN
25、S的巨大發(fā)展則與高速發(fā)展的互聯網用戶信息群息息相關,根據中國互聯網絡信息中心的報告,中國網民規(guī)模已經躍居世界第一位了。開心網的火爆發(fā)展已經掀起了國內SNS的井噴,SNS已經是目前互聯網行業(yè)最受矚目的新興領域。</p><p> 下面是國內幾個知名SNS網站首頁截圖</p><p><b> 圖 3開心網首頁</b></p><p><
26、b> 圖 4人人網首頁</b></p><p><b> LBS基于位置服務</b></p><p> LBS[8],全稱 Location Based Service。它是通過電信移動運營商的無線電通訊網絡(如GSM網、CDMA網)或外部定位方式(如GPS)獲取移動終端用戶的位置信息,在GIS(Geographic information S
27、ystem)平臺的支持下,為用戶提供相應服務的一種增值業(yè)務。</p><p> 隨著移動互聯網和移動通信軟硬件的發(fā)展,手機不僅僅只用于打電話發(fā)短信了。玩游戲,交朋友,看視頻等等都成了不少手機用戶必不可少的娛樂項目了。目前,內嵌GPS模塊的智能手機逐步成為市場的主流,由于通過GPS模塊能夠獲得速度、方向以及二維乃至三維的空間位置信息,其所帶來的好處不僅僅是導航,其他以位置為基本特征的相關服務日漸興起,越來越收到大
28、眾的青睞。此外,由于具備GPS導航功能的手機都集成有地圖數據,是LBS業(yè)務實現的最佳載體,通過將電子地圖,客戶關心的位置信息以及移動互聯網信息三者融合,這樣的技術將會帶來新的商業(yè)模式和盈利模式。例如主打陌生人交友的手機端軟件陌陌。簽到模式休閑娛樂類軟件嘀咕,街旁等等。本課題的研究對于LBS類軟件也有著一定的輔助功能,它能夠幫助該類軟件在運營初期增強和積累數據庫數據量和用戶量。</p><p> 圖 5 LBS
29、軟件陌陌</p><p> 圖 6 LBS軟件街旁</p><p> 圖 7 LBS軟件嘀咕</p><p> 圖 8 LBS 軟件遇見</p><p><b> 社會網絡</b></p><p> 社會網絡[9]是指社會成員之間因為互動而形成的相對穩(wěn)定的關系體系,社會網絡關注的是人
30、們之間的互動關系,社會互動會影響人們的社會行為[6]。從社會網絡的角度出發(fā),人在社會環(huán)境中的相互作用可以表達為基于關系的一種模式或規(guī)則,而基于這種關系的有規(guī)律模式反映了社會結構,這種結構的量化分析是社會網絡分析的出發(fā)點。</p><p> 近年來,隨著圖論,概率論以及各種幾何學的發(fā)展和完善,社會網絡分析作為一種應用性很強的社會學研究方法越來越受人矚目。在社會學中,網絡研究通常有兩種視角:第一,將網絡視為一種分析
31、工具,憑借這種工具可以理清行動者之間,行動者與其環(huán)境之間的關系;第二,將網絡視為由行動者之間的關系所構成的社會結構,此時關系本身成為研究的對象。</p><p> 網狀結構通常指網絡內部各行動者之間相對穩(wěn)定的關系模式或“結構洞”模式。外國學者伯特是最早系統(tǒng)闡述“結構洞”這個概念的學者,用它來特指網絡中某些行動者之間關系缺乏的現象,按照伯特的觀點,當網絡中人們之間沒有直接關系或關系缺失時,網絡就會出現空洞,即所謂
32、的“結構洞”?!敖Y構洞”之所以重要,是因為“結構洞”通常構成了網絡中信息折射和資源流動的“閥門”,是否折射或流動,如何折射或流動,這一切都可以掌控在占據這個“結構洞”的行動者手里。因此,在網絡中占有的“結構洞”越多,行動者在結構上所占有的優(yōu)勢就越大,通過這些優(yōu)勢獲得回報的可能性就越高。</p><p> 通過研究網絡關系,有助于把個體間關系、“微觀”網絡與大規(guī)模的社會系統(tǒng)的“宏觀”結構結合起來。圖9是社會網絡關
33、系圖。</p><p> 圖 9 社會網絡關系圖</p><p> Prefuse可視化工具</p><p> 我們處在一個信息爆炸的時代,對繁雜的抽象信息之間的復雜關系進行探索的努力,促使了信息可視化這一嶄新科學領域的出現。</p><p> Prefuse[10]是一個可擴展的軟件框架,它可以幫助Java語言開發(fā)者開發(fā)交互的信息可
34、視化程序。它在分析社會網絡關系有巨大的作用,我們可以將我們所需要繪制的繪圖數據轉換為prefuse內部數據的形式,graph,tree。它支持由表,圖,樹組成的數據結構,字段的數據索引和選擇列的查詢,并且高效的利用內存。并且通過一組活動的時序機制來實現動畫,包含了可視化的變形效果,包括物體位置移動和通過空間的放大縮小,它還融合了lucene文本查詢engines,并且內建了類似于SQL的語言語句可以針對數據進行行和列的操作。在位置和動畫
35、中還利用了物理力學的模擬,使整個動畫的效果非常的真實好看。它支持從XML,數據庫導入繪圖數據。開發(fā)者只要通過簡單使用他的API就能將數據庫中的數據繪制出來。微博用戶之間的好友關系就是一張網絡,好友的好友的好友等關系不斷蔓延,形成一個網狀結構,用prefuse可視化的展示社會關系將會非常的直觀和清晰[11]。圖10是Prefuse分析社交網絡的效果圖</p><p> 圖 10 Prefuse社交網絡分析圖<
36、;/p><p><b> 數據庫連接技術</b></p><p><b> MYSQL</b></p><p> MySQL是一個小型關系數據庫管理系統(tǒng)[12]。它是完全網絡化的跨平臺關系型數據庫系統(tǒng),是一個真正的多用戶,多線程SQL數據庫服務器,同時是具有C/S體系結構的分布式數據庫管理系統(tǒng),它具有功能強,使用簡便,管
37、理方便,運行速度快,安全可靠性強等有點,用戶可以利用許多語言編寫訪問Mysql數據庫的程序,對于中,小型應用系統(tǒng)是非常理想的。除了支持標準的ANSISQL語句,更重要的是,它還支持多種平臺。。它支持Linux,Mac OS,Windows等多種操作系統(tǒng),并且為多種編程語言提供了API,提供了TCP/IP、ODBC和JDBC等多種數據庫連接途徑。這些系統(tǒng)特性使得它收到絕大多數個人開發(fā)者和中小型企業(yè)的追捧。目前Internet上流行的網站架
38、構方式就是LAMP(Linux+Apache+MySQL+PHP)。由于這四個軟件都是免費的或者開源軟件,因此使用者可以不用花一分錢就建立起一個穩(wěn)定、免費的網站系統(tǒng)。</p><p><b> JDBC</b></p><p> JDBC,全稱Java Database Connectivity [13]是一種用于執(zhí)行SQL語句的Java API.提供了諸如查詢和
39、更新數據庫中數據的方法。它由一組Java語言編寫的類與接口組成。使用JDBC可以很容易地把SQL語句傳送到任何關系型數據庫中。JDBC API 提供兩種主要接口:一是面向開發(fā)人員的Java.sql程序包,使得Java程序員能夠進行數據庫連接,執(zhí)行SQL查詢,并得到結果集合,另一方向是面向底層數據庫廠商的JDBC驅動,它介于前端應用程序與后端數據源之間。根據其特性不同,大致分為4種類型:</p><p> JDB
40、C-ODBC橋驅動程序。應用程序通過JDBC-ODBC橋,以調用ODBC連接數據源,由于微軟windows系統(tǒng)中的ODBC大多已支持各種類型的數據源,因此在建構上較為方便,可直接使用JDK附屬的驅動程序進行連接。但是由于經過了橋的轉換,因此在效率上并不十分理想。因此不太適合于企業(yè)應用上。</p><p> Native API 驅動程序。此類型驅動程序也需要經過類似橋的機制連接數據源,所不同的是,此類型的橋為原
41、聲函數庫,是軟件廠商針對其數據庫自行開發(fā)的。由于使用了源生碼,提高了執(zhí)行速度。但如果出錯,修改起來也將非常麻煩。</p><p> Net-Protocol 驅動程序。此類JDBC驅動程序會將SQL語句轉換成為標準網絡協議,交由數據庫網關或應用程序服務器處理,應用程序服務器將標準網絡協議翻譯成為數據庫廠商的專有特殊數據庫訪問協議與數據庫通信。此類驅動程序可充分運用程序服務器的安全機制,并且不需要額外的ODBC或
42、者原生函數庫等機制,因此系統(tǒng)可移植性強。</p><p> Native-Protocol 驅動程序。此類驅動程序不需要任何中介機制,直接轉換JDBC調用,成為DBMS的網絡協議,直接訪問數據源,這對Internet應用是高效的,但是由于缺乏安全機制的支持,可能會存在一些潛在的安全隱患。</p><p> Java與JDBC的結合,使程序員可以只寫一次數據庫應用軟件后,就能在各種不同數
43、據庫上運行,真正發(fā)揮了Java“編寫一次,處處運行”的優(yōu)勢。</p><p> 本系統(tǒng)對數據庫連接的封裝</p><p> 本次課題在JDBC的基礎寫了一個管理數據庫的封裝類。封裝了與數據庫連接方法,數據庫數據更新方法,類結構如圖11所示。</p><p> 圖 11 數據庫管理類</p><p> 本系統(tǒng)所用到的數據庫表結構如圖1
44、2所示:</p><p> 圖 12 數據庫表結構</p><p> 圖 13 好友關系表結構</p><p> 圖 14 微博評論表結構</p><p> 圖 15 微博信息表結構</p><p> 圖 16微博用戶表結構</p><p><b> 實驗環(huán)境</b&
45、gt;</p><p> 本系統(tǒng)所使用的開發(fā)環(huán)境是windows系統(tǒng)。理論上也支持Linux系統(tǒng)。開發(fā)語言使用的是Java程序語言,開發(fā)工具使用的是eclipse。另外本系統(tǒng)還使用了新浪開放平臺的weibo4J開源代碼和Prefuse的開源框架。引用的外部jar包如圖17所示。</p><p> 圖 17 系統(tǒng)引用jar包</p><p> 新浪微博抓取系統(tǒng)實
46、驗方案</p><p><b> 功能介紹。</b></p><p> 本工程模塊用于實現新浪微博的授權認證和微博信息的抓取。是整個系統(tǒng)的核心功能。其整體功能模塊劃分如圖18所示:</p><p> 圖 18 系統(tǒng)模塊劃分圖</p><p><b> 實現方案介紹</b></p>
47、;<p> 首先我們需要完成測試用戶的授權認證過程:</p><p> 我們需要的是打開瀏覽器請求https://api.weibo.com/oauth2/authorize接口。把我們之前申請好的應用的App_key和Sercret Key作為參數傳過去,服務器會跳轉到認證頁面。輸入測試用戶的微博賬號和密碼。服務器會跳轉到我們之前申請應用時設定的重定向頁面。并且在重定向頁面的URL后面會帶有一
48、個code參數。例如(http://www.blogjava.net/jayslong?code=f98824ae9dc0552b4bf5a07e4778cfbd)我們根據這個code去請求https://api.weibo.com/oauth2/access_token接口。服務器認證通過后就會返回經過授權了的access_token。我們就可以用這個token去請求開放平臺的API了。圖19是新浪微博抓取模塊的流程圖</p&g
49、t;<p> 工程模塊各類關系介紹</p><p> 本項目的源代碼結構如圖20所示:</p><p> 圖20 項目代碼結構圖</p><p> 其中OAuth4Code.java是用來獲取access_token。運行OAuth4Code.Java將會跳完新浪服務器進行認證。運行截圖如圖21所示</p><p>
50、 圖 21 授權認證過程</p><p> DBHelp.java是數據庫管理類。StartUP.java是新浪抓取模塊的啟動類。WeiboPrefuse.java是用來可視化顯示好友關系的工具類。prefuse包里面是開源框架prefuse的源碼,weibo4j包里面是新浪微博開放平臺的SDK。里面封裝了一些聯網請求和返回數據的數據結構。</p><p> 另外整個項目還有幾個配置文
51、件需要注意,通過配置這幾個文件,可以很方便的將其中的模塊部分或完全移植到相應的計算機環(huán)境中。</p><p> 在src根目錄下有一個config.properties文件,該文件用于配置新浪開放平臺應用的相關信息。其內容如圖22所示:</p><p> 圖 22 config.properties配置文件</p><p> client_id:是我們申請新浪
52、開放平臺應用是得到應用ID。</p><p> client_SERCRET: 是我們申請新浪開放平臺應用是得到應密鑰。</p><p> 通過這兩個id可以幫助新浪服務器區(qū)分我們的應用,并且防止我們的應用給他人盜用。redirect_URI:這個當用戶授權成功后跳轉的網頁URI。我們需要一個可以訪問的網頁供用戶授權成功后跳轉。這個重定向URL必須要和我們申請應用的時候設定的重定向UR
53、L一致,否則服務器會拋出錯誤導致認證失敗。</p><p> baseURL:所有接口的URL都是以這個為基礎拼接出來的。</p><p> access_token:這個是我們以后訪問絕大多是API所必須的參數,他是經過我們用戶授權后返回的有效的access_token。每個token都有一個有效期,一般在開發(fā)階段。每個token的有效期只有1天。一天后我們就需要重新認證獲取新的ac
54、cess_token。當應用提交審核并且通過后,token的有效期將延伸至7天,如果需要更長更久的token有效期,則需要與開放平臺交涉申請,開放平臺會根據我們應用的狀態(tài)和性質,調整token的失效期。</p><p> accessTokenURL:這個URL是用來獲取access_token的。</p><p> authorizeURL:這個URL是用來跳轉到服務器進行用戶授權認
55、證的。</p><p> 在config目錄下還有一個source.conf文件。該文件是用來配置數據庫相關。其大致內容如圖23所示:</p><p> 圖 23數據庫配置文件</p><p> 這四個參數可以根據具體計算機環(huán)境中的數據庫配置靈活更改。</p><p> 通過這些配置文件,我們可以不更改代碼就將項目運行在其他計算機上。
56、大大方便了項目的演示和移植。</p><p> 社會網絡關系可視化分析</p><p> 本系統(tǒng)使用了Prefuse[11]框架對抓取到的社會網絡關系進行了可視化的分析,其網絡關系網狀圖如圖24所示:</p><p> 圖 24 社會網絡關系網狀圖</p><p> 在上圖中,每個節(jié)點代表一個微博用戶。而每條線則代表一個用戶關系,線條
57、越多說明他/她的好友或者粉絲越多,說明他/她的交際或者知名度很廣。例如上圖中的小S就是臺灣知名藝人兼主持人徐熙娣。她的粉絲是非常多的,所以以她為中心輻射出去的關系線非常的多。我們可以看到,粉絲越多的人,越在網絡的中心處。這樣體現了顯示生活中的現狀。明星們總是給粉絲們圍在中心處!上圖中還有一些個體脫離了這個網絡。這可能是因為他的好友或者粉絲不多,也可能是因為他/她的交際圈沒有融入到我們所抓取到的這個關系網中,如果我們抓取足夠多的數據的話,
58、我相信,所有人都將融入到整個關系網中,這也真正說明了六度分割理論的準確性。</p><p><b> 結束語</b></p><p> 本系統(tǒng)基于新浪開放平臺和OAuth2.0,通過請求開放平臺API,獲取服務器數據并把他解析出來存儲在數據庫中。實現了微博數據,微博評論,微博用戶,微博用戶關系的抓取。并使用prefuse開源框架對微博用戶社會網絡關系的可視化分析。
59、</p><p> 總的來說整個項目的功能還是很基礎的,可擴展和優(yōu)化的地方還很多。我自己的代碼也有很多可以優(yōu)化的地方。只是由于時間的關系,很多地方都顧及不到。另外如何突破新浪官方的限制也是提高項目整體實用性的重中之重。另外對于prefuse框架的應用,網上很多的教程也只是對官方demo的簡單運用,prefuse更多更強大的功能,需要我們仔細研究其API和幫助文檔。但是不得不承認Prefuse讓我開始覺得,Jav
60、a的SWING也能編寫出堪比MFC的用戶交互程序。</p><p> 盡管有這樣或者那樣的不足,但是在這個畢業(yè)設計過程中,我的收獲還是很豐富的。我目前在一家手機軟件公司擔任Android開發(fā)程序員,主要項目也是基于LBS的應用軟件。之前在項目中也使用過開放平臺的相關東西,但是并不深入,通過此次畢業(yè)設計,我對整個OAuth認證過程有了更加透徹的認識。對JSON數據交換格式也更加知根知底。并且學習到了很多軟件設計的
61、思想。這對我來說都是無比寶貴的財富。</p><p> 在后續(xù)的工作中。如何突破新浪開放平臺的限制,將是我的工作重點。爭取能最大化的發(fā)揮其自動抓取的性能。并且將對整個系統(tǒng)線程池進行優(yōu)化,并從多線程方向進行擴展,提高系統(tǒng)的網絡請求效率和抓取速度,如有必要對微博中的圖片和用戶的頭像也進行抓取并儲存下來。數據庫數據存儲方面也需要進行優(yōu)化,采用數據庫連接池的方式更好的管理數據庫連接,提高數據庫存儲效率。大幅度提升整個系
62、統(tǒng)的實用性。最后為多方面的網絡數據抓取需求提供更好的幫助。</p><p><b> 【參考文獻】</b></p><p> 崔娜,盛斌,賈婉瑩.SNS網絡文化探析------以開心網為例[J]. 北京郵電大學學報:社會科學版, 2009(5):1-4. </p><p> 劉鏑,張智江,張尼. 基于國內開放平臺的Oauth認證框架研究[
63、J], 信息通信技術, 2011(1):1-4</p><p> 楊樹林,胡潔萍. JSON數據交換格式及其在數據驗證中的應用[J], 北京印刷學院學報, 2008(4):56-58.</p><p> 余學軍. 六度分割理論成就SNS[J]. 信息網絡, 2008(11):37-37</p><p> 陳飛翔,楊崇俊,申勝利,于文洋,楊建宇. 基于LBS的移
64、動GIS研究[J], 計算機工程與應用, 2006(2):200-202</p><p> 林聚任. 社會網絡分析 [M]. 北京師范大學出版社, 2009.</p><p> Jeffrey Heer, Stuart K.Card.James A.Landay, prefuse:a toolkit for interactive information visualization[
65、M]. ACM New York,USA 2005.</p><p> Belue,J.M, Netwrok Visualization Design Using Prefuse Visualization Toolkit[M] 2008.5</p><p> 蘭旭輝,熊家軍,鄧剛. 基于MySQL的應用程序設計[J]. 計算機工程與設計, 2006(3):442-443.</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——微博系統(tǒng)
- 畢業(yè)論文——微博系統(tǒng)
- 微博系統(tǒng)畢業(yè)論文
- 微博營銷 畢業(yè)論文
- 微博營銷畢業(yè)論文 (2)
- 淺談微博利弊【畢業(yè)論文】
- 基于內容的微博推薦系統(tǒng)-畢業(yè)論文
- 淺析企業(yè)微博營銷畢業(yè)論文
- 微博營銷模式研究[畢業(yè)論文]
- 淺淡企業(yè)微博營銷畢業(yè)論文
- 淺析企業(yè)微博營銷——畢業(yè)論文
- 微博營銷策略研究畢業(yè)論文
- 畢業(yè)設計(論文)--微博系統(tǒng)
- 微博營銷畢業(yè)論文--淺析微博營銷利弊及策略分析
- 微博營銷價值研究[畢業(yè)論文]
- 微博時代的雜志營銷【畢業(yè)論文】
- 關于微博營銷的優(yōu)秀畢業(yè)論文
- 畢設基于php微博系統(tǒng)設計與實現畢業(yè)論文
- 畢業(yè)論文-企業(yè)微博營銷的策略研究
- 傳統(tǒng)媒體微博運作淺析【畢業(yè)論文】
評論
0/150
提交評論