基于事件的微博采集系統(tǒng)及方法
【專利摘要】一種信息安全【技術(shù)領(lǐng)域】的基于事件的微博采集系統(tǒng)及方法,該系統(tǒng)包括:URL構(gòu)造模塊、JSSH客戶端模塊、瀏覽器采集模塊以及HTML解析模塊,URL構(gòu)造模塊與JSSH客戶端模塊相連接并傳輸采集的URL信息,JSSH客戶端模塊與瀏覽器采集模塊相連接并傳輸JSSH指令,瀏覽器采集模塊與HTML解析模塊相連接并傳輸HTML文本信息。本發(fā)明能夠?qū)⒁粭l微博可以解析出微博作者名、微博作者主頁(yè)URL、微博作者頭像URL、微博正文內(nèi)容、微博短鏈接、微博發(fā)布時(shí)間、微博發(fā)布客戶端、轉(zhuǎn)發(fā)數(shù)、評(píng)論數(shù)等等抽象數(shù)據(jù),從而將每一條原本非結(jié)構(gòu)化數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù),從而實(shí)現(xiàn)抽象數(shù)據(jù)的具體化,供后續(xù)數(shù)據(jù)挖掘使用。
【專利說(shuō)明】基于事件的微博采集系統(tǒng)及方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種信息安全【技術(shù)領(lǐng)域】的系統(tǒng)及方法,具體是一種基于事件的微博采集系統(tǒng)及方法,通過(guò)該系統(tǒng)獲取的微博信息可進(jìn)行數(shù)據(jù)挖掘并用于數(shù)據(jù)分析。
【背景技術(shù)】
[0002]現(xiàn)有的采集系統(tǒng)大多采用直接對(duì)網(wǎng)站進(jìn)行采集的方式。如劉蘭,吳振新在《WebArchive信息采集流程及關(guān)鍵問(wèn)題研究》(情報(bào)理論與實(shí)踐,2009)以及林穎,吳振新,張智雄在《WebArchive存檔策略分析》(現(xiàn)代圖書(shū)情報(bào)技術(shù),2009.)。這些采集系統(tǒng)的缺陷主要在于:首先,這樣效率低下,對(duì)采集系統(tǒng)負(fù)載要求很高。其次,需要面對(duì)各種不同的網(wǎng)站情況,對(duì)采集源的格式分析比較復(fù)雜,采集系統(tǒng)很難及時(shí)應(yīng)對(duì)URL的頻繁變化。最后,傳統(tǒng)的采集系統(tǒng)大多以存檔為主要目的,缺乏對(duì)采集內(nèi)容的分析和重組,在浩瀚的內(nèi)容面前很難及時(shí)發(fā)現(xiàn)熱點(diǎn)和趨勢(shì)。現(xiàn)有的微博采集技術(shù)通常采用API進(jìn)行微博信息采集,此方法受API使用限制較大,進(jìn)行頻繁采集以及時(shí)更新數(shù)據(jù),無(wú)法滿足大信息量獲取的需求。
[0003]經(jīng)過(guò)對(duì)現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國(guó)專利文獻(xiàn)號(hào)CN102609460A,
【公開(kāi)日】2012 - 07 - 25,公開(kāi)了一種微博客數(shù)據(jù)采集方法及系統(tǒng),該技術(shù)首先初始化用戶數(shù)據(jù);對(duì)獲得的用戶特征進(jìn)行提取,取得可用于進(jìn)行用戶確定的特征數(shù)據(jù);對(duì)提取出的數(shù)據(jù)進(jìn)行過(guò)濾,過(guò)濾后的數(shù)據(jù)特征進(jìn)行用戶類型確定;對(duì)于不同類別的用戶采用不同策略進(jìn)行數(shù)據(jù)采集。該方法采集之前必須先基于對(duì)用戶的分類,不能滿足輿情特別是突發(fā)事件相關(guān)龐大信息量的快速采集。
[0004]萬(wàn)久士、李翔、林祥在《基于JSSH實(shí)現(xiàn)身份認(rèn)證網(wǎng)站信息采集》(《計(jì)算機(jī)技術(shù)與發(fā)展》2009年第10期)中提出了基于JSSH (java腳本外殼服務(wù)器,Java Script ShellServer)實(shí)現(xiàn)身份認(rèn)證網(wǎng)站發(fā)布信息采集方案。但該技術(shù)僅解決了動(dòng)態(tài)新聞和論壇信息的獲取,無(wú)法實(shí)現(xiàn)信息的自動(dòng)整合,自動(dòng)化程度較低,無(wú)法實(shí)現(xiàn)抽象數(shù)據(jù)的集合歸類,難以滿足工業(yè)需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提出一種基于事件的微博采集系統(tǒng)及方法,能夠?qū)⒚恳粭l原本非結(jié)構(gòu)化數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù),從而實(shí)現(xiàn)抽象數(shù)據(jù)的具體化,供后續(xù)數(shù)據(jù)挖掘使用。
[0006]本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0007]本發(fā)明涉及一種基于事件的微博采集系統(tǒng),包括:URL構(gòu)造模塊、JSSH客戶端模塊、瀏覽器采集模塊以及HTML解析模塊,其中:URL構(gòu)造模塊與JSSH客戶端模塊相連接并傳輸采集的URL信息,JSSH客戶端模塊與瀏覽器采集模塊相連接并傳輸JSSH指令,瀏覽器采集模塊與HTML解析模塊相連接并傳輸HTML文本信息。
[0008]本發(fā)明涉及上述系統(tǒng)的采集方法,包括以下步驟:
[0009]第 一步,通過(guò)JSSH客戶端傳遞瀏覽器指令,連接到微博登錄頁(yè)面進(jìn)行登錄動(dòng)作以模擬瀏覽器自動(dòng)登錄過(guò)程;
[0010]第二步,解析頁(yè)面上的URL鏈接并對(duì)URL鏈接進(jìn)行匹配:根據(jù)策略詞構(gòu)造URL鏈接,并向?yàn)g覽器傳輸訪問(wèn)URL的指令,當(dāng)瀏覽器打開(kāi)指令中所含URL鏈接的網(wǎng)頁(yè)后,將該網(wǎng)頁(yè)上的HTML內(nèi)容轉(zhuǎn)儲(chǔ)成HTML文件。
[0011]第三步,將第二步獲取到HTML文件中的鏈接逐條與規(guī)則進(jìn)行匹配,進(jìn)一步打開(kāi)瀏覽器鏈接至匹配規(guī)則的鏈接的網(wǎng)頁(yè),并獲取該網(wǎng)頁(yè)的源代碼
[0012]所述的規(guī)則是指:對(duì)于微博采集信息錄入有效且包含微博內(nèi)容的頁(yè)面的共同特征規(guī)則,
[0013]所述的匹配是指:當(dāng)鏈接符合規(guī)則掩碼時(shí)認(rèn)為匹配,該掩碼是指:當(dāng)前微博搜索結(jié)果中頁(yè)面翻頁(yè)鏈接所對(duì)應(yīng)的URL地址,將URL中頁(yè)碼參數(shù)的賦值更改為*號(hào)的通配表示。
[0014]第四步,對(duì)第三步采集得到的網(wǎng)頁(yè)源代碼進(jìn)行解析,生成結(jié)構(gòu)化數(shù)據(jù)并存入不同的數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)微博信息的結(jié)構(gòu)化錄入。
[0015]所述的解析是指:從HTML中提取數(shù)據(jù)庫(kù)對(duì)應(yīng)字段的所需要的內(nèi)容
[0016]所述的結(jié)構(gòu)化數(shù)據(jù)包括:微博作者ID、作者昵稱、微博內(nèi)容、微博內(nèi)容中的縮略圖URL、微博內(nèi)容中的原圖URL、微博發(fā)布時(shí)間、微博發(fā)布客戶端。
技術(shù)效果
[0017]本發(fā)明和現(xiàn)有技術(shù)相比,采用瀏覽器模擬技術(shù),可以真實(shí)模擬人訪問(wèn)微博,不受API使用權(quán)限的限制,可以做到頻繁采集,滿足大信息量的獲取需求,同時(shí),基于事件策略觸發(fā)獲取的機(jī)制,可以滿足對(duì)特定輿情相關(guān)信息的采集。
【專利附圖】
【附圖說(shuō)明】
[0018]圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)示意圖。
[0019]圖2為實(shí)施例流程示意圖。
【具體實(shí)施方式】
[0020]下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
實(shí)施例1
[0021]如圖1所示,本實(shí)施例涉及一種基于事件的微博采集系統(tǒng),包括:URL構(gòu)造模塊、JSSH客戶端模塊、瀏覽器采集模塊、HTML解析模塊,其中:URL構(gòu)造模塊與JSSH客戶端模塊相連接并傳輸采集的URL信息,JSSH客戶端模塊與瀏覽器采集模塊相連接并傳輸JSSH指令,瀏覽器采集模塊與HTML解析模塊相連接并傳輸HTML文本信息。
[0022]所述的JSSH指令包括但不限于:瀏覽器跳轉(zhuǎn)等動(dòng)作指令。
[0023]如圖2所示,以火狐瀏覽器(FireFox)為例,所述的系統(tǒng)通過(guò)以下步驟實(shí)現(xiàn)微博采集:
[0024]第一步,通過(guò)JSSH客戶端傳遞瀏覽器指令,連接到微博登錄頁(yè)面進(jìn)行登錄動(dòng)作以模擬瀏覽器自動(dòng)登錄過(guò)程,具體包括:
[0025]1.1)首先指定一個(gè)Firefox使用的賬號(hào)(profile)和對(duì)應(yīng)端口(port):[0026]ff=Firefox.new(:port=>port,:profile=>port)
[0027]1.2)進(jìn)入登錄頁(yè)面
[0028]ff.goto (login_page, 8)
[0029]1.3)選擇用戶名輸入框,對(duì)應(yīng)元素name=〃loginname〃,并填入用戶名
[0030]when^name^;ff.text_field(:name, name[I]).value=name_input
[0031]1.4)選擇密碼框,對(duì)應(yīng)元素name=〃loginname〃,并填入密碼
[0032]when^name^;ff.text_field(:name, pass[I]).value=pass_input
[0033]1.5)找到登錄按鈕,對(duì)應(yīng)元素tabindex=〃3〃,并點(diǎn)擊
[0034]when〃tabindex〃;ff.link(:tabindex, login[I]).click
[0035]第二步,解析頁(yè)面上的URL鏈接并對(duì)URL鏈接進(jìn)行匹配:根據(jù)策略詞構(gòu)造URL鏈接,并向?yàn)g覽器傳輸訪問(wèn)URL的指令,當(dāng)瀏覽器打開(kāi)指令中所含URL鏈接的網(wǎng)頁(yè)后,將該網(wǎng)頁(yè)上的HTML內(nèi)容轉(zhuǎn)儲(chǔ)成HTML文件,具體步驟包括:
[0036]2.1)根據(jù)檢索條件構(gòu)造URL,并讓FF訪問(wèn)該URL
[0037]ff.goto (ARGV [0],60)
[0038]2.2)獲取網(wǎng)頁(yè)中的鏈接,將鏈接和掩碼進(jìn)行匹配,如果匹配則打開(kāi)鏈接
[0039]2.3)使用ff.html方法將網(wǎng)頁(yè)以html格式分別存到本地。
[0040]第三步,將第二步獲取到HTML文件中的鏈接逐條與規(guī)則進(jìn)行匹配,進(jìn)一步打開(kāi)瀏覽器鏈接至匹配規(guī)則的鏈接的網(wǎng)頁(yè),并獲取該網(wǎng)頁(yè)的源代碼;
[0041]所述的規(guī)則是指:對(duì)于微博采集信息錄入有效且包含微博內(nèi)容的頁(yè)面的共同特征規(guī)貝1J,比如:根據(jù)新浪微博搜索URL的既定規(guī)律,http://s.weib0.com/weibo+“中文URL轉(zhuǎn)碼” +參數(shù)“topnav=l”+ “&” +參數(shù)“wr=5” + “&” +參數(shù)“b=l”,將關(guān)注策略進(jìn)行轉(zhuǎn)換,比如關(guān)注策略為“兩會(huì)”,即構(gòu)造出
[0042]“http://s.weib0.com/weibo/%25E4%25B8%25A4%25E4%25BC%259A?topnav=l&wvr=5&b=l”的URL鏈接,作為輸入微博采集模塊的參數(shù),進(jìn)行原始頁(yè)面的獲取。
[0043]所述的匹配是指:當(dāng)鏈接符合規(guī)則掩碼時(shí)認(rèn)為匹配,該掩碼是指:當(dāng)前微博搜索結(jié)果中頁(yè)面翻頁(yè)鏈接所對(duì)應(yīng)的URL地址,將URL中頁(yè)碼參數(shù)的賦值更改為*號(hào)的通配表示,例如:“http://s.weib0.com/weibo/” + 當(dāng)前策略中文 URL 轉(zhuǎn)碼” + “&” + 參數(shù)“b = I” +“page=*”(*為整數(shù))。
[0044]所述的網(wǎng)頁(yè)源代碼的獲取方式操作為:利用瀏覽器接口中的HTML函數(shù),將瀏覽器解析完JavaScript的頁(yè)面HTML輸出到指定文件。
[0045]第四步,對(duì)第三步采集得到的網(wǎng)頁(yè)源代碼進(jìn)行解析,生成結(jié)構(gòu)化數(shù)據(jù)并存入不同的數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)微博信息的結(jié)構(gòu)化錄入。
[0046]所述的解析是指:從HTML中提取數(shù)據(jù)庫(kù)對(duì)應(yīng)字段的所需要的內(nèi)容,例如,由href=\"http:V/weib0.com/pengxy\"title=\"\u5f6d\u6653\u82b8\〃 中:
[0047]a)正則title=\〃與〃中的信息為發(fā)微博的作者,通過(guò)JavaScript漢字轉(zhuǎn)碼即可得到作者名。
[0048]b)正則 “ ar ge t = \ "_b I ank\ " suda - dat a = \ "key = tb I οg_sear ch_v4.l&value=weibo_feed_h_l: ” 與 \〃>\n 中的信息為用戶的 id,可直接構(gòu)造“http://weib0.com/uid”為作者主頁(yè)鏈接,構(gòu)造頭像鏈接“http://tp4.sinaimg.cn//1736499131//50//5657270873//0/%22” 為用戶頭像。
[0049]c)正則
[0050]〈span
Style=X^color: red;\">\u4e24\u4fla〈/span>\u671f\u95f4\u621I\u5728\u51e4\U51f0\u7f51\u505a\u7684\u5bf9\u8bdd\u6e05\u534e\u5927\u5b66\u6559\u6388\u6768\u71d5\u7ee5
\u7684\u89c6\u9891\u5730\u5740\uff0c\u6211\u4eec\u8c08\u5f97\u5f88\u6dfl\U5165\u5f88\u4e30\u5bcc\u3002\u73b0\u5728\u5a92\u4f53\u6458\u53d6\u53ea\u8a00-\u7247\u8bed\u7092\u4f5c\u7684\u65b9\u5f0f\u4ee4\u4eba\u9057\u61be\u3002\U6768\u71d5\u7ee5\u5bf9\u517b\u8001\u95ee\u9898\u7814\u7a76\u975e\u5e38\u6dfl-\u5165\uff0c\u5979\u7684\u4e3b\u5f20\u53ef\u4e0d\u662f\u4f60\u60f3\u8c61\U7684\u90a3\u6837\u7b80\u5355\uff0c\u4e00\u5473\u8c29\u9a82\u53ea\u80fd\u8bf4-\u660e\u5f88\u591a\u4eba\u8ba8\u8bba\u4e0d\u4e86\u8fd9\u4e2a\u95ee\u9898\U3002\u300a\u4e0b\u4e00\u4e2a\u5341\u5e74\uffla\u5982\u4f55\u5e94\u5bf9\u672a-\u5bcc\u5148\u8001\u300b 中,〈span style=\"color:red;\">\u4e24\u4fla〈/span> 后的均為JavaScript漢字轉(zhuǎn)碼的微博正文內(nèi)容。
[0051]<a
title=\〃http:\八/news, ifeng.com/opinion/special/shhyanglao/detai1_2013_03/14/2 3112900_0.shtml\"href=\"http://t.cn/zYr6yk4\〃 中,<atitle=\與最近一個(gè)\"之間的為短鏈接的真實(shí)鏈接,href=\"與最近一個(gè)\"之間的為短鏈接。
[0052]title=\〃2013 - 09 - 1300:06\〃date=\〃1379002016000\〃 中可以解析出當(dāng)前微博發(fā)布的時(shí)間。
[0053]href=\"http: V/weib0.com\八"
rel=\"nofollow\">\u65b0\u6d6a\u5fae\u535a〈/a>\n 中,rel=\"nofollow\"> 與最
近一個(gè)/a>\n之間的為發(fā)布客戶端的名稱,通過(guò)JavaScript漢字轉(zhuǎn)碼可以得知發(fā)布客戶端為“新浪微博”,href=\"與最近一個(gè)\"之間的為發(fā)布客戶端對(duì)應(yīng)的鏈接。
[0054]>\u8f6c\u53dl (101) </a> 中 \u8f6c\u53dl 為 JavaScript 漢字轉(zhuǎn)碼的“轉(zhuǎn)發(fā)”,獲取后面括號(hào)中的數(shù)字,即為轉(zhuǎn)發(fā)數(shù)。
[0055]>\u8bc4\u8bba (99) </a> 中 \u8bc4\u8bba 為 JavaScript 漢字轉(zhuǎn)碼的“評(píng)論”,獲取后面括號(hào)中的數(shù)字,即為評(píng)論數(shù)。
[0056]所述的結(jié)構(gòu)化數(shù)據(jù)包括:微博作者ID、作者昵稱、微博內(nèi)容、微博內(nèi)容中的縮略圖URL、微博內(nèi)容中的原圖URL、微博發(fā)布時(shí)間、微博發(fā)布客戶端。
[0057]根據(jù)本系統(tǒng)及上述方法,可以將一條微博可以解析出微博作者名、微博作者主頁(yè)URL、微博作者頭像URL、微博正文內(nèi)容、微博短鏈接、微博發(fā)布時(shí)間、微博發(fā)布客戶端、轉(zhuǎn)發(fā)數(shù)、評(píng)論數(shù)。
[0058]在返回的搜索結(jié)果頁(yè)面網(wǎng)頁(yè)源碼中,會(huì)有至多十五條微博,依次解析上述元素,存入數(shù)據(jù)庫(kù)對(duì)應(yīng)字段,即可依次構(gòu)造出每一條微博,并且將每一條微博原本非結(jié)構(gòu)化數(shù)據(jù),變成結(jié)構(gòu)化數(shù)據(jù),從而實(shí)現(xiàn)抽象數(shù)據(jù)的具體化,供后續(xù)數(shù)據(jù)挖掘使用。
【權(quán)利要求】
1.一種基于事件的微博采集系統(tǒng),其特征在于,包括:URL構(gòu)造模塊、JSSH客戶端模塊、瀏覽器采集模塊、HTML解析模塊,其中:URL構(gòu)造模塊與JSSH客戶端模塊相連接并傳輸采集的URL信息,JSSH客戶端模塊與瀏覽器采集模塊相連接并傳輸JSSH指令,瀏覽器采集模塊與HTML解析模塊相連接并傳輸HTML文本信息。
2.一種基于權(quán)利要求1所述系統(tǒng)的微博采集方法,其特征在于,包括以下步驟: 第一步,通過(guò)JSSH客戶端傳遞瀏覽器指令,連接到微博登錄頁(yè)面進(jìn)行登錄動(dòng)作以模擬瀏覽器自動(dòng)登錄過(guò)程; 第二步,解析頁(yè)面上的URL鏈接并對(duì)URL鏈接進(jìn)行匹配:根據(jù)策略詞構(gòu)造URL鏈接,并向?yàn)g覽器傳輸訪問(wèn)URL的指令,當(dāng)瀏覽器打開(kāi)指令中所含URL鏈接的網(wǎng)頁(yè)后,將該網(wǎng)頁(yè)上的HTML內(nèi)容轉(zhuǎn)儲(chǔ)成HTML文件 第三步,將第二步獲取到HTML文件中的鏈接逐條與規(guī)則進(jìn)行匹配,進(jìn)一步打開(kāi)瀏覽器鏈接至匹配規(guī)則的鏈接的網(wǎng)頁(yè),并獲取該網(wǎng)頁(yè)的源代碼; 第四步,對(duì)第三步采集得到的網(wǎng)頁(yè)源代碼進(jìn)行解析,生成結(jié)構(gòu)化數(shù)據(jù)并存入不同的數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)微博信息的結(jié)構(gòu)化錄入。
3.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的規(guī)則是指:對(duì)于微博采集信息錄入有效且包含微博內(nèi)容的頁(yè)面的共同特征規(guī)則。
4.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的匹配是指:當(dāng)鏈接符合規(guī)則掩碼時(shí)認(rèn)為匹配,該掩碼具體為:當(dāng)前微博搜索結(jié)果中頁(yè)面翻頁(yè)鏈接所對(duì)應(yīng)的URL地址,將URL中頁(yè)碼參數(shù)的賦值更改為*號(hào)的通配表示。
5.根據(jù)權(quán)利要求4所述的方法,其特征是,所述的掩碼為:http://s.weib0.com/weibo/” +當(dāng)前策略中文URL轉(zhuǎn)碼” + “&,,+參數(shù)“b = I” + “page = * , *為整數(shù)。
6.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的網(wǎng)頁(yè)源代碼的獲取方式操作為:利用瀏覽器接口中的HTML函數(shù),將瀏覽器解析完JavaScript的頁(yè)面HTML輸出到指定文件。
7.根據(jù)權(quán)利要求2所述的方法,其特征是,第四步中,所述的解析是指:從HTML中提取數(shù)據(jù)庫(kù)對(duì)應(yīng)字段的所需要的內(nèi)容; 所述的結(jié)構(gòu)化數(shù)據(jù)包括:微博作者ID、作者昵稱、微博內(nèi)容、微博內(nèi)容中的縮略圖URL、微博內(nèi)容中的原圖URL、微博發(fā)布時(shí)間、微博發(fā)布客戶端。
【文檔編號(hào)】G06F17/30GK103927367SQ201410161456
【公開(kāi)日】2014年7月16日 申請(qǐng)日期:2014年4月22日 優(yōu)先權(quán)日:2014年4月22日
【發(fā)明者】李翔, 裘瑛, 黃豫蕾, 王佳凱, 陳繼國(guó), 林祥, 陳璐藝, 馮皪魏 申請(qǐng)人:上海數(shù)據(jù)分析與處理技術(shù)研究所, 上海交通大學(xué), 上海鵬越驚虹信息技術(shù)發(fā)展有限公司