周林 重慶大學城市科技學院
校園網絡平臺主要包括校園論壇、校園貼吧、博客、微博、公眾平臺等,是學生最活躍的信息交流平臺。大學生的互聯(lián)網參與行為表現(xiàn)出參與意識強、知識層次高、個性化鮮明、好奇心重等特點,他們在“互聯(lián)網世界”里非?;钴S。從新媒體研究的視角來看,學生既是網絡信息的接受者,也是網絡信息的制造者與傳播者,對校園網平臺信息進行有效的監(jiān)測,對督促學生良好的網絡行為引導、正確價值觀的構建等具有積極的意義和價值。校園網平臺信息的主題相關性較強,因此選擇主題爬蟲“面向特定主題”的信息進行抓取,能夠有效實現(xiàn)校園網平臺信息的監(jiān)測。
在爬蟲技術應用中,針對不同類型的網絡平臺,所采用的爬蟲關鍵技術有所區(qū)別,比如對于傳統(tǒng)網頁信息的采集,采用傳統(tǒng)爬蟲爬取更多頁面,對于博客、微博、個人主頁等類型的網絡平臺,考慮到其自行管理特征和實時更新特征,需要盡可能的縮短爬行周期,與信息更新的速度相匹配。在以往的應用中,簡單咨詢聚合(RSS)被廣泛應用,但隨著信息技術的不斷發(fā)展,在不利用RSS的情況下,需要在爬行策略上進行思考,采取更多的、更有效的策略。從高校學生活躍度較高的網絡平臺情況來看,微博、博客、個人主頁等是最受歡迎的,因此在具體的應用中,需要先對各網絡鏈接類型進行區(qū)分,然后依據(jù)鏈接類型與鏈接結構爬取信息,縮短爬行周期,獲得更好的效果。
在進行主題相關性分析時,先確定分析的流程,即網站結構分析→鏈接類型分析→網頁內容獲取→主題相似度計算。在具體實踐中,先對學生主要參與的網絡平臺進行分析分類,明確每個網站的特定結構,然后針對性的對爬蟲做統(tǒng)一的設置,以避免和排除不相干鏈接的干擾。比如新浪微博網址均以https://weibo.com/開頭,那么在在爬蟲設計時只要滿足前綴為這個格式的即可,這樣可以有效濾過其他網站的廣告URL。在個人往來平臺的的信息爬取中,以目錄頁為種子,以列表中所有鏈接地址為爬取內容,則可爬取該主頁所信息。
當獲得全部網絡頁面鏈接之后,為避免“主題漂移”,還需通過獲取網頁內容來評價主題相關性。為了提高網絡信息爬取效率,需要先對網絡內容進行判斷,然后進行主題相似度分析,以避免主題無關性信息下載。在實踐中,選擇樸素貝葉斯算法,其概率公式為:
其中,B為信息網頁,C為關鍵詞信息類別,通過這個公式可對比出“是/非”的概率,然后在根據(jù)關鍵詞w及權重t,對T個網頁或T篇文章進行爬取,最終依據(jù)以下兩個公式判斷網頁信息是否主題相關。
其中,R是主題相關的數(shù)量,N是主題不相關的數(shù)量,v是不同詞數(shù)量。
在主題爬蟲系統(tǒng)框架設計時,先對爬蟲進行初始化設計,包括種子管理與爬蟲定時器設置,然后實施網頁抓取,采用多線程技術,實現(xiàn)增量爬取,減少網絡信息的重復爬取。針對校園網絡平臺的信息監(jiān)測要求,主題爬蟲系統(tǒng)在工作時需要實現(xiàn)四個爬取過程的內容,包括頁面抓取、頁面解析、去重、任務調度。
針對校園網絡平臺中學生個人主頁地址集中的特征,可在深度優(yōu)先爬取的基礎上,采用多線程技術實現(xiàn)多個頁面爬取任務并發(fā)執(zhí)行,可以同時爬取多個個人網絡主頁,最大限度提升爬取效率。考慮到校園網絡平臺上的信息是不斷更新的,而且原有信息多是保留的,這時為了盡可能減少重復爬取,可采用增強爬取的方法,在爬蟲定時器的控制下,按照設定好的爬取周期進行二次爬取或多次爬取。在一次爬取時,所有檢索信息按照URL和sha-1值以extractor表的方式存儲數(shù)據(jù)庫,當二次爬取時,為避免重復,系統(tǒng)先在數(shù)據(jù)庫中查詢前一次爬取的數(shù)據(jù),查看URL是否存在,以及文章內容sha-1值是否變化,若URL存在且sha-1值無變化,則無需再次爬?。蝗魋ha-1值有變化,則在數(shù)據(jù)庫信息表中更新文章信息。
在主題相似度計算時,中文分詞是基礎,這就需要選擇合適的分詞器,而且分詞器的效果直接影響主題相似度計算的準確性。分詞器的選擇中,要充分考慮系統(tǒng)要求、面向網頁的特征、網頁信息的文字特征等因素,同時還需要注重單擊分詞速度、分詞精度等指標,而且還要滿足“支持自定義詞典”的功能。分詞器選定后,在相應的校園網絡平臺選取微博、博客、論壇、個人主頁等平臺上的文章進行訓練,用選定的分詞系統(tǒng)進行分詞處理。在樸素貝葉斯算法函數(shù)下,分別計算出網頁文章信息屬于和不屬于相關主題的概率。最后,對于滿足爬行條件的網頁信息,將HTML文件下載到本地,然后在數(shù)據(jù)庫中建立一一對應額文件夾進行保存。
頁面爬取流程完成后,對信息內容的抽取將成為主要任務。首先對網頁信息進行抽取,比如微博內容、博客文章、網頁文章等,抽取內容主要包括標題、發(fā)布時間、內容。當網頁信息中包含圖片內容時,可借助圖片轉換文字的軟件工具提取文字信息,然后對文字進行比對處理,最后存儲于數(shù)據(jù)庫。由于校園網絡平臺中的信息內容是不定時更新的,而且學生對網絡的參與熱情較高,在互聯(lián)網上十分活躍,發(fā)布信息較為頻繁,因此針對這些信息的監(jiān)測,需要系統(tǒng)對網頁信息的爬取周期更短,需要更大頻率的監(jiān)測。從目前最常用的方法來看,主要采取抽取定時器、爬蟲定時器等功能。爬取定時器設置一定的爬取周期,然后以自動的方式在周期內實現(xiàn)網頁信息爬取。
系統(tǒng)正常運行中,雖然可以通過數(shù)據(jù)庫存儲的原始文件進行比對,最大限度避免網頁信息的重復爬取與解析,但實際上這樣會大大降低程序的效率。而且校園網絡平臺不僅僅局限于博客、微博、論壇、個人主頁等作者發(fā)布的“主貼”,還會涉及到很多的“回復”信息,而這些信息同樣需要進行監(jiān)測。分析可知,在校園網絡平臺上用戶發(fā)布的言論都是按照時間順序排序的,因此針對這些信息則可以選用爬過的言論發(fā)表時間中最大值作為標準,對網頁上這類信息進行判斷其是否已經被爬取過?;谶@種考慮,可以在數(shù)據(jù)庫建立一個“歷史時間表”,借助存儲的時間信息完成去重任務。在任務調度中,首先需要對各類校園網絡平臺上的用戶賬號進行匯總統(tǒng)計,然后在多線程爬取方式下,依據(jù)賬號書目確定開啟線程的個數(shù),以確保各線程間無重復競爭的問題。